<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<title>PublicCMS 函数指令手册</title>
<style type="text/css">
html,body{background-color:#ffffff;color:#353833;font-size:14px;margin:0;height:100%;}
h1{text-align:center;margin:20px;}
.indexContainer h3{margin:0;padding:5px;background-color:#4D7A97;color:#fff;}
a:link, a:visited {text-decoration:none;color:#4A6782;}
a:hover, a:focus {text-decoration:none;color:#bb7a2a;}
a:active{text-decoration:none;color:#4A6782;}
.selected a{color:#000;}
.container{width:80%;height:100%;margin:0 auto;border-left:1px solid #aaa;}
.indexContainer{position:absolute;top:0px;overflow:auto;width:200px;float:left;height:100%;}
.indexContainer ul{margin:0px 10px;padding:0;}
.indexContainer ul li{list-style:none;padding-top:2px;}
ul{list-style-type:disc;}
code{line-height:1.4em;color:#d63384;}
pre{background-color: #efefef;overflow: auto;padding: 10px;}
.block{padding:20px;overflow:auto;color:#474747;border-bottom:1px dashed #aaa;}
.doc{margin-left:200px;height:100%;overflow:auto;}
</style>
</head>
<body>
<div class="container">
    <div class="indexContainer">
            <h3>指令(命名空间:api)</h3>
        <ul>
            <li><a href="#api-appClient">appClient</a></li>
            <li><a href="#api-appToken">appToken</a></li>
            <li><a href="#api-autoLogin">autoLogin</a></li>
            <li><a href="#api-bindingUser">bindingUser</a></li>
            <li><a href="#api-clearCache">clearCache</a></li>
            <li><a href="#api-contentCheck">contentCheck</a></li>
            <li><a href="#api-contentClick">contentClick</a></li>
            <li><a href="#api-contentCreate">contentCreate</a></li>
            <li><a href="#api-login">login</a></li>
            <li><a href="#api-myContentList">myContentList</a></li>
            <li><a href="#api-refreshToken">refreshToken</a></li>
            <li><a href="#api-unBindingUser">unBindingUser</a></li>
            <li><a href="#api-upload">upload</a></li>
        </ul>
        <h3>指令(命名空间:cms)</h3>
        <ul>
            <li><a href="#cms-category">category</a></li>
            <li><a href="#cms-categoryList">categoryList</a></li>
            <li><a href="#cms-categoryModel">categoryModel</a></li>
            <li><a href="#cms-categoryModelList">categoryModelList</a></li>
            <li><a href="#cms-categoryType">categoryType</a></li>
            <li><a href="#cms-categoryTypeList">categoryTypeList</a></li>
            <li><a href="#cms-comment">comment</a></li>
            <li><a href="#cms-commentList">commentList</a></li>
            <li><a href="#cms-content">content</a></li>
            <li><a href="#cms-contentFileList">contentFileList</a></li>
            <li><a href="#cms-contentList">contentList</a></li>
            <li><a href="#cms-contentProduct">contentProduct</a></li>
            <li><a href="#cms-contentProductList">contentProductList</a></li>
            <li><a href="#cms-contentQuoteList">contentQuoteList</a></li>
            <li><a href="#cms-contentRelatedList">contentRelatedList</a></li>
            <li><a href="#cms-dictionary">dictionary</a></li>
            <li><a href="#cms-dictionaryData">dictionaryData</a></li>
            <li><a href="#cms-dictionaryDataList">dictionaryDataList</a></li>
            <li><a href="#cms-dictionaryExclude">dictionaryExclude</a></li>
            <li><a href="#cms-dictionaryExcludeList">dictionaryExcludeList</a></li>
            <li><a href="#cms-dictionaryExcludeValue">dictionaryExcludeValue</a></li>
            <li><a href="#cms-dictionaryList">dictionaryList</a></li>
            <li><a href="#cms-editorHistory">editorHistory</a></li>
            <li><a href="#cms-editorHistoryList">editorHistoryList</a></li>
            <li><a href="#cms-facetSearch">facetSearch</a></li>
            <li><a href="#cms-model">model</a></li>
            <li><a href="#cms-modelList">modelList</a></li>
            <li><a href="#cms-place">place</a></li>
            <li><a href="#cms-placeList">placeList</a></li>
            <li><a href="#cms-search">search</a></li>
            <li><a href="#cms-survey">survey</a></li>
            <li><a href="#cms-surveyList">surveyList</a></li>
            <li><a href="#cms-surveyQuestion">surveyQuestion</a></li>
            <li><a href="#cms-surveyQuestionItem">surveyQuestionItem</a></li>
            <li><a href="#cms-surveyQuestionItemList">surveyQuestionItemList</a></li>
            <li><a href="#cms-surveyQuestionList">surveyQuestionList</a></li>
            <li><a href="#cms-tag">tag</a></li>
            <li><a href="#cms-tagList">tagList</a></li>
            <li><a href="#cms-tagType">tagType</a></li>
            <li><a href="#cms-tagTypeList">tagTypeList</a></li>
            <li><a href="#cms-userCollection">userCollection</a></li>
            <li><a href="#cms-userCollectionList">userCollectionList</a></li>
            <li><a href="#cms-userScore">userScore</a></li>
            <li><a href="#cms-userScoreList">userScoreList</a></li>
            <li><a href="#cms-userSurvey">userSurvey</a></li>
            <li><a href="#cms-userSurveyList">userSurveyList</a></li>
            <li><a href="#cms-userSurveyQuestion">userSurveyQuestion</a></li>
            <li><a href="#cms-userSurveyQuestionList">userSurveyQuestionList</a></li>
            <li><a href="#cms-userVote">userVote</a></li>
            <li><a href="#cms-userVoteList">userVoteList</a></li>
            <li><a href="#cms-vote">vote</a></li>
            <li><a href="#cms-voteItem">voteItem</a></li>
            <li><a href="#cms-voteItemList">voteItemList</a></li>
            <li><a href="#cms-voteList">voteList</a></li>
            <li><a href="#cms-word">word</a></li>
            <li><a href="#cms-wordList">wordList</a></li>
            <li><a href="#cms-workload">workload</a></li>
        </ul>
        <h3>指令(命名空间:log)</h3>
        <ul>
            <li><a href="#log-loginList">loginList</a></li>
            <li><a href="#log-operate">operate</a></li>
            <li><a href="#log-operateList">operateList</a></li>
            <li><a href="#log-task">task</a></li>
            <li><a href="#log-taskList">taskList</a></li>
            <li><a href="#log-uploadList">uploadList</a></li>
        </ul>
        <h3>指令(命名空间:sys)</h3>
        <ul>
            <li><a href="#sys-app">app</a></li>
            <li><a href="#sys-appClient">appClient</a></li>
            <li><a href="#sys-appClientList">appClientList</a></li>
            <li><a href="#sys-appList">appList</a></li>
            <li><a href="#sys-appTokenList">appTokenList</a></li>
            <li><a href="#sys-authorized">authorized</a></li>
            <li><a href="#sys-clusterList">clusterList</a></li>
            <li><a href="#sys-config">config</a></li>
            <li><a href="#sys-configData">configData</a></li>
            <li><a href="#sys-configFieldList">configFieldList</a></li>
            <li><a href="#sys-configList">configList</a></li>
            <li><a href="#sys-dept">dept</a></li>
            <li><a href="#sys-deptItem">deptItem</a></li>
            <li><a href="#sys-deptItemList">deptItemList</a></li>
            <li><a href="#sys-deptList">deptList</a></li>
            <li><a href="#sys-domain">domain</a></li>
            <li><a href="#sys-domainList">domainList</a></li>
            <li><a href="#sys-extendFieldList">extendFieldList</a></li>
            <li><a href="#sys-lock">lock</a></li>
            <li><a href="#sys-module">module</a></li>
            <li><a href="#sys-moduleLang">moduleLang</a></li>
            <li><a href="#sys-moduleList">moduleList</a></li>
            <li><a href="#sys-record">record</a></li>
            <li><a href="#sys-recordList">recordList</a></li>
            <li><a href="#sys-role">role</a></li>
            <li><a href="#sys-roleList">roleList</a></li>
            <li><a href="#sys-roleModule">roleModule</a></li>
            <li><a href="#sys-roleModuleList">roleModuleList</a></li>
            <li><a href="#sys-roleUserList">roleUserList</a></li>
            <li><a href="#sys-site">site</a></li>
            <li><a href="#sys-siteList">siteList</a></li>
            <li><a href="#sys-task">task</a></li>
            <li><a href="#sys-taskList">taskList</a></li>
            <li><a href="#sys-user">user</a></li>
            <li><a href="#sys-userList">userList</a></li>
            <li><a href="#sys-userSetting">userSetting</a></li>
            <li><a href="#sys-userTokenList">userTokenList</a></li>
            <li><a href="#sys-workflow">workflow</a></li>
            <li><a href="#sys-workflowList">workflowList</a></li>
            <li><a href="#sys-workflowProcess">workflowProcess</a></li>
            <li><a href="#sys-workflowProcessHistoryList">workflowProcessHistoryList</a></li>
            <li><a href="#sys-workflowProcessItem">workflowProcessItem</a></li>
            <li><a href="#sys-workflowProcessList">workflowProcessList</a></li>
            <li><a href="#sys-workflowStep">workflowStep</a></li>
            <li><a href="#sys-workflowStepList">workflowStepList</a></li>
        </ul>
        <h3>指令(命名空间:task)</h3>
        <ul>
            <li><a href="#task-clearLog">clearLog</a></li>
            <li><a href="#task-indexContent">indexContent</a></li>
            <li><a href="#task-publishCategory">publishCategory</a></li>
            <li><a href="#task-publishContent">publishContent</a></li>
            <li><a href="#task-publishPage">publishPage</a></li>
            <li><a href="#task-publishPlace">publishPlace</a></li>
        </ul>
        <h3>指令(命名空间:tools)</h3>
        <ul>
            <li><a href="#tools-createCategoryFile">createCategoryFile</a></li>
            <li><a href="#tools-createContentFile">createContentFile</a></li>
            <li><a href="#tools-createLock">createLock</a></li>
            <li><a href="#tools-createTemplateFile">createTemplateFile</a></li>
            <li><a href="#tools-csrfToken">csrfToken</a></li>
            <li><a href="#tools-disk">disk</a></li>
            <li><a href="#tools-diyMetadata">diyMetadata</a></li>
            <li><a href="#tools-diyMetadataList">diyMetadataList</a></li>
            <li><a href="#tools-diyRegionData">diyRegionData</a></li>
            <li><a href="#tools-exception">exception</a></li>
            <li><a href="#tools-executeScript">executeScript</a></li>
            <li><a href="#tools-fileBackupContent">fileBackupContent</a></li>
            <li><a href="#tools-fileBackupList">fileBackupList</a></li>
            <li><a href="#tools-fileContent">fileContent</a></li>
            <li><a href="#tools-fileExist">fileExist</a></li>
            <li><a href="#tools-fileHistoryContent">fileHistoryContent</a></li>
            <li><a href="#tools-fileHistoryList">fileHistoryList</a></li>
            <li><a href="#tools-fileList">fileList</a></li>
            <li><a href="#tools-includeLayout">includeLayout</a></li>
            <li><a href="#tools-includePlace">includePlace</a></li>
            <li><a href="#tools-includeRegion">includeRegion</a></li>
            <li><a href="#tools-licenseVerify">licenseVerify</a></li>
            <li><a href="#tools-masterSite">masterSite</a></li>
            <li><a href="#tools-memory">memory</a></li>
            <li><a href="#tools-metadata">metadata</a></li>
            <li><a href="#tools-placeMetadata">placeMetadata</a></li>
            <li><a href="#tools-sendEmail">sendEmail</a></li>
            <li><a href="#tools-systemProperties">systemProperties</a></li>
            <li><a href="#tools-templatePlaceList">templatePlaceList</a></li>
            <li><a href="#tools-templateRegionList">templateRegionList</a></li>
            <li><a href="#tools-templateResult">templateResult</a></li>
            <li><a href="#tools-templateSearchList">templateSearchList</a></li>
            <li><a href="#tools-thumb">thumb</a></li>
            <li><a href="#tools-userAgent">userAgent</a></li>
            <li><a href="#tools-version">version</a></li>
        </ul>
        <h3>指令(命名空间:trade)</h3>
        <ul>
            <li><a href="#trade-account">account</a></li>
            <li><a href="#trade-accountHistory">accountHistory</a></li>
            <li><a href="#trade-accountHistoryList">accountHistoryList</a></li>
            <li><a href="#trade-accountList">accountList</a></li>
            <li><a href="#trade-address">address</a></li>
            <li><a href="#trade-addressList">addressList</a></li>
            <li><a href="#trade-gatewayList">gatewayList</a></li>
            <li><a href="#trade-order">order</a></li>
            <li><a href="#trade-orderHistory">orderHistory</a></li>
            <li><a href="#trade-orderHistoryList">orderHistoryList</a></li>
            <li><a href="#trade-orderList">orderList</a></li>
            <li><a href="#trade-orderProduct">orderProduct</a></li>
            <li><a href="#trade-orderProductList">orderProductList</a></li>
            <li><a href="#trade-payment">payment</a></li>
            <li><a href="#trade-paymentHistory">paymentHistory</a></li>
            <li><a href="#trade-paymentHistoryList">paymentHistoryList</a></li>
            <li><a href="#trade-paymentList">paymentList</a></li>
            <li><a href="#trade-refund">refund</a></li>
            <li><a href="#trade-refundList">refundList</a></li>
        </ul>
        <h3>指令(命名空间:visit)</h3>
        <ul>
            <li><a href="#visit-day">day</a></li>
            <li><a href="#visit-dayList">dayList</a></li>
            <li><a href="#visit-history">history</a></li>
            <li><a href="#visit-historyList">historyList</a></li>
            <li><a href="#visit-item">item</a></li>
            <li><a href="#visit-itemList">itemList</a></li>
            <li><a href="#visit-session">session</a></li>
            <li><a href="#visit-sessionList">sessionList</a></li>
            <li><a href="#visit-url">url</a></li>
            <li><a href="#visit-urlList">urlList</a></li>
        </ul>
        <h3>函数</h3>
        <ul>
            <li><a href="#method-confuse">confuse</a></li>
            <li><a href="#method-confuseHtml">confuseHtml</a></li>
            <li><a href="#method-getAbsoluteUrl">getAbsoluteUrl</a></li>
            <li><a href="#method-getCategoryAttribute">getCategoryAttribute</a></li>
            <li><a href="#method-getCategoryAttributes">getCategoryAttributes</a></li>
            <li><a href="#method-getContentAttribute">getContentAttribute</a></li>
            <li><a href="#method-getContentAttributes">getContentAttributes</a></li>
            <li><a href="#method-getContentPage">getContentPage</a></li>
            <li><a href="#method-getDate">getDate</a></li>
            <li><a href="#method-getDict">getDict</a></li>
            <li><a href="#method-getDictEnable">getDictEnable</a></li>
            <li><a href="#method-getFileUploadPrefix">getFileUploadPrefix</a></li>
            <li><a href="#method-getFontList">getFontList</a></li>
            <li><a href="#method-getHash">getHash</a></li>
            <li><a href="#method-getHtml">getHtml</a></li>
            <li><a href="#method-getIpRegion">getIpRegion</a></li>
            <li><a href="#method-getIpv4Number">getIpv4Number</a></li>
            <li><a href="#method-getIpv6Number">getIpv6Number</a></li>
            <li><a href="#method-getKeywords">getKeywords</a></li>
            <li><a href="#method-getLayoutStyle">getLayoutStyle</a></li>
            <li><a href="#method-getLicense">getLicense</a></li>
            <li><a href="#method-getLicenseData">getLicenseData</a></li>
            <li><a href="#method-getMd5">getMd5</a></li>
            <li><a href="#method-getPage">getPage</a></li>
            <li><a href="#method-getParameterTypeList">getParameterTypeList</a></li>
            <li><a href="#method-getPlaceAttribute">getPlaceAttribute</a></li>
            <li><a href="#method-getPlaceAttributes">getPlaceAttributes</a></li>
            <li><a href="#method-getPrivateUrl">getPrivateUrl</a></li>
            <li><a href="#method-getProcessTypeList">getProcessTypeList</a></li>
            <li><a href="#method-getRandom">getRandom</a></li>
            <li><a href="#method-getSha1">getSha1</a></li>
            <li><a href="#method-getSha2">getSha2</a></li>
            <li><a href="#method-getSha256">getSha256</a></li>
            <li><a href="#method-getSha512">getSha512</a></li>
            <li><a href="#method-getSitefile">getSitefile</a></li>
            <li><a href="#method-getSkipWord">getSkipWord</a></li>
            <li><a href="#method-getSleep">getSleep</a></li>
            <li><a href="#method-getTemplateResult">getTemplateResult</a></li>
            <li><a href="#method-getTextFromHtml">getTextFromHtml</a></li>
            <li><a href="#method-getUUID">getUUID</a></li>
            <li><a href="#method-getUrl">getUrl</a></li>
            <li><a href="#method-getXml">getXml</a></li>
        </ul>
    </div>
    <div class="doc">
        <h1>PublicCMS 函数指令手册 202506</h1>
        <div class="block" data-id="api-appClient">appClient 客户端注册接口
<p>参数列表</p>
<ul>
 <li><code>uuid</code>:设备唯一id</li>
 <li><code>clientVersion</code>:客户端版本</li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/appClient?uuid=1&amp;clientVersion=1.0&amp;appToken=接口访问授权Token', function(data){
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-appToken">appToken 接口访问授权Token获取接口
<p>参数列表</p>
<ul>
 <li><code>appKey</code>:应用key</li>
 <li><code>appSecret</code>:应用密钥</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>appToken</code>:接口访问授权Token</li>
 <li><code>expiryDate</code>:过期日期</li>
 <li><code>error</code>:错误信息,当appKey、appSecret为空或错误时返回【secretError】</li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/appToken?appKey=1&amp;appSecret=1', function(data){
  $('article p em').text(data.clicks);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-autoLogin">autoLogin 自动登录接口
<p>参数列表</p>
<ul>
 <li><code>uuid</code>:设备唯一id</li>
 <li><code>username</code>:用户名</li>
 <li><code>channel</code>:登陆渠道</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:登录结果,【true,false】</li>
 <li><code>authToken</code>:用户登录授权</li>
 <li><code>expiryDate</code>:过期日期</li>
 <li><code>user</code>:用户信息
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 用户名</li>
   <li><code>weakPassword</code> : weak password 弱密码</li>
   <li><code>nickname</code> : nickname 昵称</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>deptId</code> : dept id 部门id</li>
   <li><code>contentPermissions</code> : content permissions(0:self,1:all,2:dept) 内容权限(0:自己的,1:全部,2:本部门)</li>
   <li><code>roles</code> : role ids 角色id</li>
   <li><code>email</code> : email 邮件地址</li>
   <li><code>emailChecked</code> : email checked 已验证邮件</li>
   <li><code>superuser</code> : super user 管理员</li>
   <li><code>disabled</code> : disabled 已禁用p</li>
   <li><code>lastLoginDate</code> : last login date 上次登录日期</li>
   <li><code>lastLoginIp</code> : last login ip 上次登录ip</li>
   <li><code>loginCount</code> : login count 登录次数</li>
   <li><code>registeredDate</code> : register date 注册日期</li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/autoLogin?uuid=1&amp;username=admin&amp;channel=web', function(data){
    console.log(result+","+authToken+","+user.nickname+","+expiryDate);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-bindingUser">bindingUser 客户端绑定用户接口
<p>参数列表</p>
<ul>
 <li><code>uuid</code>:设备唯一id</li>
 <li><code>channel</code>:客户端版本</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:绑定结果</li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/bindingUser?uuid=1&amp;channel=web&amp;authToken=用户登录授权&amp;authUserId=1', function(data){
console.log(data.result);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-clearCache">clearCache 缓存清理接口
<p>使用示例</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/clearCache&amp;appToken=接口访问授权Token', function(data){
     console.log("ok");
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-contentCheck">contentCheck 内容审核接口
<p>参数列表</p>
<ul>
 <li><code>ids</code>:多个内容id</li>
 <li><code>uncheck</code>:取消审核, 【true,false】,默认为<code>false</code></li>
</ul>
<p>返回结果</p>
<ul></ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath!}api/contentCheck?ids=1,2&amp;authToken=用户登录授权&amp;authUserId=1&amp;appToken=接口访问授权Token', function(data){
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-contentClick">contentClick 内容点击接口
<p>参数列表</p>
<ul>
 <li><code>id</code>:内容id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>clicks</code>:内容点击数</li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/contentClick?id=1', function(data){
  console.log(data.clicks);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-contentCreate">contentCreate 内容创建接口
<p>参数列表</p>
<ul>
 <li><code>id</code>:内容id,为空时新建内容</li>
 <li><code>categoryId</code>:分类id</li>
 <li><code>modelId</code>:模型id</li>
 <li><code>title</code>:标题</li>
 <li><code>description</code>:描述</li>
 <li><code>author</code>:作者</li>
 <li><code>editor</code>:编辑</li>
 <li><code>copied</code>:转载,【true,false】,默认为<code>false</code></li>
 <li><code>publishDate</code>:发布日期,默认为当前日期</li>
 <li><code>tagNames</code>:多个标签名</li>
 <li><code>tagIds</code>:多个标签id</li>
 <li><code>url</code>:url,当模型为外链时有效</li>
 <li><code>checked</code>:已审核,【true,false】,默认为<code>false</code></li>
 <li><code>extendData</code>:扩展数据map</li>
 <li><code>source</code>:来源</li>
 <li><code>sourceUrl</code>:来源URL</li>
 <li><code>text</code>:正文html</li>
 <li><code>draft</code>:草稿,审核为<code>false</code>时有效,【true,false】,默认为<code>false</code></li>
 <li><code>parentId</code>:父id,模型为子模型时有效</li>
 <li><code>filePaths</code>:多个文件路径</li>
 <li><code>fileDescriptions</code>:多个文件描述</li>
 <li><code>imagePaths</code>:多个图片路径</li>
 <li><code>imageDescriptions</code>:多个图片描述</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:结果【failed:失败,success:成功】</li>
 <li><code>contentId</code>:内容id,当result为success时有效</li>
 <li><code>error</code>:错误,当result为failed时有效</li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath!}api/contentCreate?categoryId=1&amp;modelId=article&amp;title=title&amp;text=%3Cdiv%3Econtent%3C/div%3E&amp;extendData.field1=value1&amp;extendData.field2=value2&amp;authToken=用户登录授权&amp;authUserId=1&amp;appToken=接口访问授权Token', function(data){
console.log(data.result);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-login">login 登录接口
<p>参数列表</p>
<ul>
 <li><code>username</code>:设备唯一id</li>
 <li><code>password</code>:用户名</li>
 <li><code>encoding</code>:密码加密方式</li>
 <li><code>channel</code>:登录渠道</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:登录结果,【true,false】</li>
 <li><code>authToken</code>:用户登录授权</li>
 <li><code>expiryDate</code>:过期日期</li>
 <li><code>user</code>:用户信息
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 用户名</li>
   <li><code>weakPassword</code> : weak password 弱密码</li>
   <li><code>nickname</code> : nickname 昵称</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>deptId</code> : dept id 部门id</li>
   <li><code>contentPermissions</code> : content permissions(0:self,1:all,2:dept) 内容权限(0:自己的,1:全部,2:本部门)</li>
   <li><code>roles</code> : role ids 角色id</li>
   <li><code>email</code> : email 邮件地址</li>
   <li><code>emailChecked</code> : email checked 已验证邮件</li>
   <li><code>superuser</code> : super user 管理员</li>
   <li><code>disabled</code> : disabled 已禁用p</li>
   <li><code>lastLoginDate</code> : last login date 上次登录日期</li>
   <li><code>lastLoginIp</code> : last login ip 上次登录ip</li>
   <li><code>loginCount</code> : login count 登录次数</li>
   <li><code>registeredDate</code> : register date 注册日期</li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/login?username=admin&amp;password=sha512encodingpassword&amp;encoding=sha512&amp;channel=web', function(data){
    console.log(result+","+authToken+","+user.nickname+","+expiryDate);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-myContentList">myContentList 我的内容接口
<p>参数列表</p>
<ul>
 <li><code>categoryId</code>:分类id,当parentId为空时有效</li>
 <li><code>containChild</code>:是否包含子分类,【true,false】</li>
 <li><code>categoryIds</code>:多个分类id,当categoryId为空时有效</li>
 <li><code>modelId</code>:多个模型id</li>
 <li><code>parentId</code>:父内容id</li>
 <li><code>onlyUrl</code>:外链,【true,false】</li>
 <li><code>hasImages</code>:拥有图片列表,【true,false】</li>
 <li><code>hasFiles</code>:拥有附件列表,【true,false】</li>
 <li><code>hasProducts</code>:拥有产品列表,【true,false】</li>
 <li><code>startPublishDate</code>:发布日期开始时间,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endPublishDate</code>:发布日期结束时间,高级选项禁用时不能超过现在,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>status</code>:内容状态,【0:操作,1:已发布,2:待审核,3:驳回】</li>
 <li><code>emptyParent</code>:高级选项:父内容id是否为空,【true,false】,当parentId为空时有效</li>
 <li><code>orderField</code> 排序字段,【score:评分,comments:评论数,clicks:点击数,publishDate:发布日期,updateDate:更新日期,checkDate:审核日期】,默认置顶级别倒序、发布日期按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>userId</code> : user id 发布用户ID</li>
   <li><code>deptId</code> : dept id 发布用户部门ID</li>
   <li><code>checkUserId</code> : check user id 审核用户ID</li>
   <li><code>categoryId</code> : category id 分类ID</li>
   <li><code>modelId</code> : model id 模型ID</li>
   <li><code>parentId</code> : parent id 父内容ID</li>
   <li><code>quoteContentId</code> : quote content id 引用内容ID</li>
   <li><code>copied</code> : copied 转载</li>
   <li><code>author</code> : author 作者</li>
   <li><code>editor</code> : editor 编辑</li>
   <li><code>onlyUrl</code> : external link 外链</li>
   <li><code>hasImages</code> : has images 拥有图片列表</li>
   <li><code>hasFiles</code> : has files 拥有附件列表</li>
   <li><code>hasProducts</code> : has products 拥有产品列表</li>
   <li><code>hasStatic</code> : has static file 静态化</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>tagIds</code> : tag ids 多个标签id</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>childs</code> : childs 子内容数</li>
   <li><code>scores</code> : total scores 总分数</li>
   <li><code>scoreUsers</code> : score users 评分用户数</li>
   <li><code>score</code> : score 分数</li>
   <li><code>comments</code> : comments 评论数</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>collections</code> : collections 收藏数</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateUserId</code> : update user id 更新用户id</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>sort</code> : top 置顶级别</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending,3:Rejected) 状态(0:草稿,1:已发布,2:待审核,3:驳回)</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath!}api/myContentList?pageSize=10&amp;authToken=用户登录授权&amp;authUserId=1', function(data){
    console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-refreshToken">refreshToken 刷新appToken接口
<p>参数列表</p>
<ul>
 <li><code>appToken</code>:设备唯一id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>authToken</code>:用户登录授权</li>
 <li><code>expiryDate</code>:过期日期</li>
 <li><code>error</code>:错误信息【needNotRefresh】</li>
</ul>
<p>使用示例</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/login?appToken=接口访问授权Token', function(data){
    console.log(appToken+","+expiryDate);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-unBindingUser">unBindingUser 客户端绑定用户接口
<p>参数列表</p>
<ul>
 <li><code>uuid</code>:设备唯一id</li>
 <li><code>channel</code>:客户端版本</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:取消绑定结果</li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/unBindingUser?uuid=1&amp;channel=web&amp;authToken=用户登录授权&amp;authUserId=1', function(data){
console.log(data.result);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="api-upload">upload 上传接口
<p>认证头</p>
<ul>
 <li><code>appToken</code>:应用授权Token</li>
 <li><code>authToken</code>:用户登录Token</li>
 <li><code>authUserId</code>:用户id</li>
</ul>
<p>参数列表</p>
<ul>
 <li><code>file</code>:文件</li>
 <li><code>base64File</code>:文件的base64编码字符串,文件为空时生效</li>
 <li><code>originalFilename</code>:文件原名,文件以base64方式上传时需要</li>
 <li><code>privatefile</code>:是否私有文件</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:上传结果,【true,false】</li>
 <li><code>error</code>:错误原因编码</li>
 <li><code>fileName</code>:文件路径</li>
 <li><code>fileType</code>:文件类型</li>
 <li><code>fileSize</code>:文件大小</li>
</ul>
<p>使用示例</p>
<pre>&lt;script&gt;
$('input[type=file]').change(function() {
    var formData = new FormData();
    var file = this.files[0];
    formData.append('file', file);
    $.ajax({url:'${site.dynamicPath}api/upload',type:'post',headers: {'appToken': 'your app token','':'','':''},data: formData,, success:function(data){
        console.log(result+","+error+","+fileName);
    });
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-category">category 分类查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:分类id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 名称</li>
   <li><code>parentId</code> : parent id 父id</li>
   <li><code>typeId</code> : type id 分类类型id</li>
   <li><code>childIds</code> : child ids 子分类id</li>
   <li><code>tagTypeIds</code> : tag type ids 标签类型id</li>
   <li><code>code</code> : code 编码</li>
   <li><code>customPath</code> : custom path 自定义访问路径</li>
   <li><code>onlyUrl</code> : extend link 外链</li>
   <li><code>hasStatic</code> : has static file 有静态化文件</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>customContentPath</code> : custom content path 自定义内容访问路径</li>
   <li><code>containChild</code> : contain child content 包含子分类内容</li>
   <li><code>pageSize</code> : content page size 内容分页大小</li>
   <li><code>allowContribute</code> : allow contribute 允许投稿</li>
   <li><code>sort</code> : sort 排序</li>
   <li><code>hidden</code> : hidden 前台隐藏</li>
   <li><code>workflowId</code> : workflow 工作流</li>
  </ul></li>
 <li><code>code</code>:分类编码,当id为空时生效,结果返回<code>object</code></li>
 <li><code>absoluteURL</code>:url处理为绝对路径 默认为<code>true</code></li>
 <li><code>containsAttribute</code>默认为<code>false</code>,http请求时为高级选项,为true时<code>object.attribute</code>为分类扩展数据<code>map</code>(字段编码,<code>value</code>)</li>
 <li><code>ids</code>: 多个分类id,逗号或空格间隔,当id或code为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.category id=1&gt;${object.name}&lt;/@cms.category&gt;</p>
<p>&lt;@cms.category ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.category&gt;</p>
<pre>   &lt;script&gt;
    $.getJSON('${site.dynamicPath}api/directive/cms/category?id=1', function(data){
      console.log(data.name);
    });
    &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-categoryList">categoryList 分类列表查询指令
<p>参数列表</p>
<ul>
 <li><code>parentId</code>:父分类id</li>
 <li><code>typeId</code>:分类类型id</li>
 <li><code>absoluteURL</code>:url处理为绝对路径, 默认为<code> true</code></li>
 <li><code>queryAll</code>:查询全部,【true,false】,parentId为空时有效</li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>containsAttribute</code>默认为<code>true</code>,http请求时为高级选项,为true时<code>category.attribute</code>为分类扩展数据<code>map</code>(字段编码,<code>value</code>)</li>
 <li><code>disabled</code>:高级选项:禁用状态, 默认为<code>false</code></li>
 <li><code>hidden</code>:高级选项:隐藏,【true,false】</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表,顺序排序正序,id倒序
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 名称</li>
   <li><code>parentId</code> : parent id 父id</li>
   <li><code>typeId</code> : type id 分类类型id</li>
   <li><code>childIds</code> : child ids 子分类id</li>
   <li><code>tagTypeIds</code> : tag type ids 标签类型id</li>
   <li><code>code</code> : code 编码</li>
   <li><code>customPath</code> : custom path 自定义访问路径</li>
   <li><code>onlyUrl</code> : extend link 外链</li>
   <li><code>hasStatic</code> : has static file 有静态化文件</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>customContentPath</code> : custom content path 自定义内容访问路径</li>
   <li><code>containChild</code> : contain child content 包含子分类内容</li>
   <li><code>pageSize</code> : content page size 内容分页大小</li>
   <li><code>allowContribute</code> : allow contribute 允许投稿</li>
   <li><code>sort</code> : sort 排序</li>
   <li><code>hidden</code> : hidden 前台隐藏</li>
   <li><code>workflowId</code> : workflow 工作流</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.categoryList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.categoryList&gt;</p>
<pre>   &lt;script&gt;
    $.getJSON('${site.dynamicPath}api/directive/cms/categoryList?pageSize=10', function(data){
      console.log(data.page.totalCount);
    });
    &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-categoryModel">categoryModel 分类内容模型映射查询指令
<p>参数列表</p>
<ul>
 <li><code>categoryId</code>:分类id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>customContentPath</code> : custom content path 自定义内容访问路径</li>
   <li><code>templatePath</code> : template path 模板路径</li>
   <li><code>contentPath</code> : content path 内容路径</li>
  </ul></li>
 <li><code>modelId</code>:内容模型id,当id为空时生效,结果返回<code>object</code></li>
 <li><code>modelIds</code> 多个内容模型id,当categoryId存在,且modelId为空时生效,结果返回<code>map</code>(内容模型id,<code>object</code>)</li>
 <li><code>categoryIds</code> 多个分类id,当categoryId不存在,且modelId存在时生效,结果返回<code>map</code>(分类id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.categoryModel categoryId=1 modelId='article'&gt;${object.templatePath}&lt;/@cms.categoryModel&gt;</p>
<p>&lt;@cms.categoryModel categoryIds=1,2,3 modelId='article'&gt;&lt;#list map as k,v&gt;${k}:${v.templatePath}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.categoryModel&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/categoryModel?categoryId=1&amp;modelId=article', function(data){
     console.log(data.templatePath);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-categoryModelList">categoryModelList 分类模型映射列表查询指令
<p>参数列表</p>
<ul>
 <li><code>modelId</code>:内容模型id</li>
 <li><code>categoryId</code>:分类id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>customContentPath</code> : custom content path 自定义内容访问路径</li>
   <li><code>templatePath</code> : template path 模板路径</li>
   <li><code>contentPath</code> : content path 内容路径</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.categoryModelList modelId='article'&gt;&lt;#list list as a&gt;${a.templatePath}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.categoryModelList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/categoryModelList?modelId=article', function(data){
     console.log(data[0].totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-categoryType">categoryType 分类类型查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:分类id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>onlyUrl</code> : extend link
    <p>外链</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
   <li><code>templatePath</code> : static template path
    <p>静态化模板路径</p></li>
   <li><code>path</code> : path
    <p>访问路径</p></li>
   <li><code>containChild</code> : contain child category's content
    <p>包含子分类内容</p></li>
   <li><code>pageSize</code> : page size
    <p>分页大小</p></li>
   <li><code>extendList</code> : extend field list
    <p>扩展字段列表</p></li>
  </ul></li>
 <li><code>ids</code>: 多个分类id,逗号或空格间隔,当id或code为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.categoryType id=1&gt;${object.name}&lt;/@cms.categoryType&gt;</p>
<p>&lt;@cms.categoryType ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.categoryType&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/categoryType?id=banner', function(data){
     console.log(data.name);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-categoryTypeList">categoryTypeList 分类类型列表查询指令
<p>没有可用于查询得参数,该指令固定返回所有结果,不可分页查询</p>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>onlyUrl</code> : extend link
    <p>外链</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
   <li><code>templatePath</code> : static template path
    <p>静态化模板路径</p></li>
   <li><code>path</code> : path
    <p>访问路径</p></li>
   <li><code>containChild</code> : contain child category's content
    <p>包含子分类内容</p></li>
   <li><code>pageSize</code> : page size
    <p>分页大小</p></li>
   <li><code>extendList</code> : extend field list
    <p>扩展字段列表</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.categoryTypeList&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.categoryTypeList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/categoryTypeList', function(data){
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-comment">comment 评论查询指令
<p>参数列表</p>
<ul>
 <li><code>replaceSensitive</code>:替换敏感词, 默认为<code>true</code></li>
 <li><code>id</code>:评论id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id 发布用户id</li>
   <li><code>replyId</code> : reply comment id 回复评论id</li>
   <li><code>replyUserId</code> : reply user id 回复用户id</li>
   <li><code>replies</code> : replies 回复数</li>
   <li><code>scores</code> : scores 分数</li>
   <li><code>contentId</code> : content id 内容id</li>
   <li><code>ip</code> : ip</li>
   <li><code>checkUserId</code> : check user 审核用户</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>status</code> : status(1:Published,2:Pending) 状态(1:已审核,2:待审核)</li>
  </ul></li>
 <li><code>ids</code>: 多个评论id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.comment id=1&gt;${object.text}&lt;/@cms.comment&gt;</p>
<p>&lt;@cms.comment ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.text}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.comment&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/comment?id=1&amp;appToken=接口访问授权Token', function(data){
     console.log(data.text);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-commentList">commentList 评论列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:发布评论用户id</li>
 <li><code>replyId</code>:被回复评论id</li>
 <li><code>contentId</code>:内容id</li>
 <li><code>emptyReply</code>:回复id是否为空, replyId为空时有效,默认为<code>false</code></li>
 <li><code>replyUserId</code>:被回复用户id</li>
 <li><code>replaceSensitive</code>:替换敏感词, 默认为<code>true</code></li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>status</code>:高级选项:评论状态,【1:已发布,2:待审核】</li>
 <li><code>checkUserId</code>:高级选项:审核用户id</li>
 <li><code>disabled</code>:高级选项:评论已删除,【true,false】</li>
 <li><code>orderField</code> 排序字段,【replies:回复数,scores:评分,checkDate:审核日期,updateDate:更新日期,createDate:创建日期】,默认置顶id按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id 发布用户id</li>
   <li><code>replyId</code> : reply comment id 回复评论id</li>
   <li><code>replyUserId</code> : reply user id 回复用户id</li>
   <li><code>replies</code> : replies 回复数</li>
   <li><code>scores</code> : scores 分数</li>
   <li><code>contentId</code> : content id 内容id</li>
   <li><code>ip</code> : ip</li>
   <li><code>checkUserId</code> : check user 审核用户</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>status</code> : status(1:Published,2:Pending) 状态(1:已审核,2:待审核)</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.commentList contentId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.text}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.commentList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/commentList?contentId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-content">content 内容查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 内容id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>userId</code> : user id 发布用户ID</li>
   <li><code>deptId</code> : dept id 发布用户部门ID</li>
   <li><code>checkUserId</code> : check user id 审核用户ID</li>
   <li><code>categoryId</code> : category id 分类ID</li>
   <li><code>modelId</code> : model id 模型ID</li>
   <li><code>parentId</code> : parent id 父内容ID</li>
   <li><code>quoteContentId</code> : quote content id 引用内容ID</li>
   <li><code>copied</code> : copied 转载</li>
   <li><code>author</code> : author 作者</li>
   <li><code>editor</code> : editor 编辑</li>
   <li><code>onlyUrl</code> : external link 外链</li>
   <li><code>hasImages</code> : has images 拥有图片列表</li>
   <li><code>hasFiles</code> : has files 拥有附件列表</li>
   <li><code>hasProducts</code> : has products 拥有产品列表</li>
   <li><code>hasStatic</code> : has static file 静态化</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>tagIds</code> : tag ids 多个标签id</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>childs</code> : childs 子内容数</li>
   <li><code>scores</code> : total scores 总分数</li>
   <li><code>scoreUsers</code> : score users 评分用户数</li>
   <li><code>score</code> : score 分数</li>
   <li><code>comments</code> : comments 评论数</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>collections</code> : collections 收藏数</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateUserId</code> : update user id 更新用户id</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>sort</code> : top 置顶级别</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending,3:Rejected) 状态(0:草稿,1:已发布,2:待审核,3:驳回)</li>
  </ul></li>
 <li><code>absoluteURL</code>:url处理为绝对路径 默认为<code> true</code></li>
 <li><code>absoluteId</code>:id处理为引用内容的ID 默认为<code> true</code></li>
 <li><code>containsAttribute</code> 默认为<code>false</code>,http请求时为高级选项,为true时<code>object.attribute</code>为内容扩展数据<code>map</code>(字段编码,<code>value</code>)</li>
 <li><code>ids</code>: 多个内容id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.content id=1&gt;${object.title}&lt;/@cms.content&gt;</p>
<p>&lt;@cms.content ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.content&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/content?id=1', function(data){    
     console.log(data.title);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-contentFileList">categoryFileList 内容附件列表查询指令
<p>参数列表</p>
<ul>
 <li><code>fileTypes</code>:文件类型,【image:图片,video:视频,audio:音频,other:其他】</li>
 <li><code>image</code>:是否图片,当fileTypes为空时有效,【true,false】</li>
 <li><code>contentId</code>:内容id</li>
 <li><code>userId</code>:用户id</li>
 <li><code>absoluteURL</code>:url处理为绝对路径 默认为<code>true</code></li>
 <li><code>orderField</code>:排序字段,【size:文件大小,clicks:点击数】,默认排序正序、id正序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>contentId</code> : content id
    <p>内容id</p></li>
   <li><code>userId</code> : upload user id
    <p>上传用户id</p></li>
   <li><code>filepath</code> : file path
    <p>文件路径</p></li>
   <li><code>fileType</code> : file type
    <p>文件类型</p></li>
   <li><code>fileSize</code> : file size
    <p>文件大小</p></li>
   <li><code>width</code> : width
    <p>宽</p></li>
   <li><code>height</code> : height
    <p>高</p></li>
   <li><code>clicks</code> : clicks
    <p>点击数</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.contentFileList contentId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.filePath}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.contentFileList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/contentFileList?contentId=1&amp;pageSize=10', function(data){
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-contentList">contentList 内容列表查询指令
<p>参数列表</p>
<ul>
 <li><code>categoryId</code>:分类id,当parentId为空时有效</li>
 <li><code>containChild</code>:是否包含子分类,【true,false】</li>
 <li><code>categoryIds</code>:多个分类id,当categoryId为空时有效</li>
 <li><code>modelId</code>:多个模型id</li>
 <li><code>parentId</code>:父内容id</li>
 <li><code>onlyUrl</code>:外链,【true,false】</li>
 <li><code>hasImages</code>:拥有图片列表,【true,false】</li>
 <li><code>hasFiles</code>:拥有附件列表,【true,false】</li>
 <li><code>hasProducts</code>:拥有产品列表,【true,false】</li>
 <li><code>hasCover</code>:拥有封面图,【true,false】</li>
 <li><code>userId</code>:发布用户id</li>
 <li><code>startPublishDate</code>:起始发布日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endPublishDate</code>:终止发布日期,高级选项禁用时不能超过现在,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>status</code>:高级选项:内容状态,【0:操作,1:已发布,2:待审核,3:驳回】</li>
 <li><code>disabled</code>:高级选项:禁用状态,默认为<code>false</code></li>
 <li><code>emptyParent</code>:高级选项:父内容id是否为空,【true,false】,当parentId为空时有效</li>
 <li><code>title</code>:高级选项:标题</li>
 <li><code>absoluteURL</code>:url处理为绝对路径 默认为<code>true</code></li>
 <li><code>absoluteId</code>:id处理为引用内容的ID 默认为<code>true</code></li>
 <li><code>containsAttribute</code>默认为<code>false</code>,http请求时为高级选项,为true时<code>content.attribute</code>为内容扩展数据<code>map</code>(字段编码,<code>value</code>)</li>
 <li><code>orderField</code> 排序字段,【score:评分,comments:评论数,clicks:点击数,collections收藏数,publishDate:发布日期,updateDate:更新日期,checkDate:审核日期】,默认置顶级别倒序、发布日期按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>firstResult</code>:开始位置,从1开始</li>
 <li><code>pageIndex</code>:页码,firstResult不存在时有效</li>
 <li><code>pageSize</code>:每页条数</li>
 <li><code>maxResults</code>:最大结果数</li>
</ul>
<p></p>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>userId</code> : user id 发布用户ID</li>
   <li><code>deptId</code> : dept id 发布用户部门ID</li>
   <li><code>checkUserId</code> : check user id 审核用户ID</li>
   <li><code>categoryId</code> : category id 分类ID</li>
   <li><code>modelId</code> : model id 模型ID</li>
   <li><code>parentId</code> : parent id 父内容ID</li>
   <li><code>quoteContentId</code> : quote content id 引用内容ID</li>
   <li><code>copied</code> : copied 转载</li>
   <li><code>author</code> : author 作者</li>
   <li><code>editor</code> : editor 编辑</li>
   <li><code>onlyUrl</code> : external link 外链</li>
   <li><code>hasImages</code> : has images 拥有图片列表</li>
   <li><code>hasFiles</code> : has files 拥有附件列表</li>
   <li><code>hasProducts</code> : has products 拥有产品列表</li>
   <li><code>hasStatic</code> : has static file 静态化</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>tagIds</code> : tag ids 多个标签id</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>childs</code> : childs 子内容数</li>
   <li><code>scores</code> : total scores 总分数</li>
   <li><code>scoreUsers</code> : score users 评分用户数</li>
   <li><code>score</code> : score 分数</li>
   <li><code>comments</code> : comments 评论数</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>collections</code> : collections 收藏数</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateUserId</code> : update user id 更新用户id</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>sort</code> : top 置顶级别</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending,3:Rejected) 状态(0:草稿,1:已发布,2:待审核,3:驳回)</li>
  </ul></li>
</ul>
使用示例
<p>&lt;@cms.contentList pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.contentList&gt;</p>
<pre>  &lt;script&gt;
    $.getJSON('${site.dynamicPath}api/directive/cms/contentList?pageSize=10', function(data){    
      console.log(data.page.totalCount);
    });
    &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-contentProduct">contentProduct 产品查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:内容id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>contentId</code> : content
    <p>内容</p></li>
   <li><code>userId</code> : upload user id
    <p>上传用户id</p></li>
   <li><code>cover</code> : cover
    <p>封面图</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>price</code> : price
    <p>价格</p></li>
   <li><code>minQuantity</code> : min quantity
    <p>最小购买数量</p></li>
   <li><code>maxQuantity</code> : max quantity
    <p>最大购买数量</p></li>
   <li><code>inventory</code> : inventory
    <p>库存</p></li>
   <li><code>sales</code> : sales
    <p>销量</p></li>
  </ul></li>
 <li><code>absoluteURL</code>:cover处理为绝对路径 默认为<code> true</code></li>
 <li><code>ids</code>:多个内容id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.contentProduct id=1&gt;${object.title}&lt;/@cms.contentProduct&gt;</p>
<p>&lt;@cms.contentProduct ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.contentProduct&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/contentProduct?id=1', function(data){
     console.log(data.title);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-contentProductList">contentProductList 产品列表查询指令
<p>参数列表</p>
<ul>
 <li><code>contentId</code>:内容id</li>
 <li><code>userId</code>:发布产品用户id</li>
 <li><code>title</code>:标题</li>
 <li><code>startPrice</code>:开始价格</li>
 <li><code>endPrice</code>:结束价格</li>
 <li><code>absoluteURL</code>:封面图处理为绝对路径 默认为<code>true</code></li>
 <li><code>orderField</code> 排序字段,【price:价格,inventory:库存,sales:销量】,默认置顶id按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>contentId</code> : content
    <p>内容</p></li>
   <li><code>userId</code> : upload user id
    <p>上传用户id</p></li>
   <li><code>cover</code> : cover
    <p>封面图</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>price</code> : price
    <p>价格</p></li>
   <li><code>minQuantity</code> : min quantity
    <p>最小购买数量</p></li>
   <li><code>maxQuantity</code> : max quantity
    <p>最大购买数量</p></li>
   <li><code>inventory</code> : inventory
    <p>库存</p></li>
   <li><code>sales</code> : sales
    <p>销量</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.contentProductList contentId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.contentProductList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/contentProductList?contentId=1&amp;pageSize=10', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-contentQuoteList">contentQuoteList 内容引用列表查询指令
<p>参数列表</p>
<ul>
 <li><code>quoteId</code>:引用内容id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>userId</code> : user id 发布用户ID</li>
   <li><code>deptId</code> : dept id 发布用户部门ID</li>
   <li><code>checkUserId</code> : check user id 审核用户ID</li>
   <li><code>categoryId</code> : category id 分类ID</li>
   <li><code>modelId</code> : model id 模型ID</li>
   <li><code>parentId</code> : parent id 父内容ID</li>
   <li><code>quoteContentId</code> : quote content id 引用内容ID</li>
   <li><code>copied</code> : copied 转载</li>
   <li><code>author</code> : author 作者</li>
   <li><code>editor</code> : editor 编辑</li>
   <li><code>onlyUrl</code> : external link 外链</li>
   <li><code>hasImages</code> : has images 拥有图片列表</li>
   <li><code>hasFiles</code> : has files 拥有附件列表</li>
   <li><code>hasProducts</code> : has products 拥有产品列表</li>
   <li><code>hasStatic</code> : has static file 静态化</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>tagIds</code> : tag ids 多个标签id</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>childs</code> : childs 子内容数</li>
   <li><code>scores</code> : total scores 总分数</li>
   <li><code>scoreUsers</code> : score users 评分用户数</li>
   <li><code>score</code> : score 分数</li>
   <li><code>comments</code> : comments 评论数</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>collections</code> : collections 收藏数</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateUserId</code> : update user id 更新用户id</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>sort</code> : top 置顶级别</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending,3:Rejected) 状态(0:草稿,1:已发布,2:待审核,3:驳回)</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.contentQuoteList contentId=1 pageSize=10&gt;&lt;#list list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.contentQuoteList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/contentQuoteList?contentId=1', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-contentRelatedList">contentRelatedList 内容推荐列表查询指令
<p>参数列表</p>
<ul>
 <li><code>contentId</code>:内容id</li>
 <li><code>relatedContentId</code>:被推荐内容id</li>
 <li><code>relationType</code>:关系类型</li>
 <li><code>relation</code>:关系</li>
 <li><code>orderField</code>:排序字段,【clicks:点击数】,默认排序正序、id正序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>contentId</code> : content id 内容id</li>
   <li><code>relationType</code> : relation type 关系类型</li>
   <li><code>relation</code> : relation 关系</li>
   <li><code>relatedContentId</code> : related content id 推进内容id</li>
   <li><code>userId</code> : related user id 推进用户id</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>title</code> : title 标题</li>
   <li><code>description</code> : description 描述</li>
   <li><code>sort</code> : sort 排序</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.contentRelatedList contentId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.contentRelatedList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/contentRelatedList?contentId=1&amp;pageSize=10', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-dictionary">dictionary 数据字典查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:值,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>name</code> : name 名称</li>
   <li><code>childDepth</code> : child depth
    <p>子级深度</p></li>
  </ul></li>
 <li><code>ids</code>:多个值,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.dictionary id='data'&gt;${object.name}&lt;/@cms.dictionary&gt;</p>
<p>&lt;@cms.dictionary values='data,data2'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.dictionary&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/dictionary?dictionaryId=data&amp;value=1', function(data){
     console.log(data.name);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-dictionaryData">dictionaryData 数据字典数据查询指令
<p>参数列表</p>
<ul>
 <li><code>dictionaryId</code>:数据字典id</li>
 <li><code>value</code> 值,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>parentValue</code> : parent value
    <p>父节点值</p></li>
   <li><code>text</code> : text
    <p>文本</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
 <li><code>values</code> 多个值,逗号或空格间隔,当value为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.dictionaryData dictionaryId='data' value='1'&gt;${object.text}&lt;/@cms.dictionaryData&gt;</p>
<p>&lt;@cms.dictionaryData dictionaryId values='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.text}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.dictionaryData&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/dictionaryData?dictionaryId=data&amp;value=1', function(data){
     console.log(data.text);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-dictionaryDataList">dictionaryDataList 数据字典数据列表
<p>参数列表</p>
<ul>
 <li><code>dictionaryId</code>:字典id,为空时返回空结果</li>
 <li><code>parentValue</code>:父节点值</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>parentValue</code> : parent value
    <p>父节点值</p></li>
   <li><code>text</code> : text
    <p>文本</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.dictionaryDataList dictionaryId='data'&gt;&lt;#list list as a&gt;${a.text}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.dictionaryDataList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/cms/dictionaryDataList?dictionaryId=1&amp;parentValue=text', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-dictionaryExclude">dictionaryExclude 数据字典排除规则查询指令
<p>参数列表</p>
<ul>
 <li><code>dictionaryId</code>:数据字典id</li>
 <li><code>excludeDictionaryId</code> 排除的字典,结果返回<code>object</code>
  <ul style="padding-left:20px;"></ul></li>
 <li><code>excludeDictionaryIds</code> 多个排除的字典,逗号或空格间隔,当excludeDictionaryId为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.dictionaryExclude dictionaryId='data' excludeDictionaryId='data1'&gt;${object.id.excludeDictionaryId}&lt;/@cms.dictionaryExclude&gt;</p>
<p>&lt;@cms.dictionaryExclude dictionaryId='data' excludeDictionaryIds='data1,data2'&gt;&lt;#list map as k,v&gt;${k}:${v.id.excludeDictionaryId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.dictionaryExclude&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/dictionaryExclude?dictionaryId=data&amp;value=1', function(data){
     console.log(data.id.excludeDictionaryId);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-dictionaryExcludeList">dictionaryExcludeList 数据字典数据列表
<p>参数列表</p>
<ul>
 <li><code>dictionaryId</code>:字典id</li>
 <li><code>excludeDictionaryId</code>:排除数据字典id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;"></ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.dictionaryExcludeList dictionaryId='data'&gt;&lt;#list list as a&gt;${a.id.excludeDictionaryId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.dictionaryExcludeList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/dictionaryExcludeList?dictionaryId=1&amp;parentValue=text', function(data){
  console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-dictionaryExcludeValue">dictionaryExcludeValue 数据字典排除值查询指令
<p>参数列表</p>
<ul>
 <li><code>dictionaryId</code>:数据字典id</li>
 <li><code>excludeDictionaryId</code>:排除的字典</li>
 <li><code>value</code> 字典值,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>excludeValues</code> : exclude values
    <p>排除的值</p></li>
  </ul></li>
 <li><code>values</code> 多个的字典值,逗号或空格间隔,当value为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.dictionaryExcludeValue dictionaryId='data' excludeDictionaryId='data1' value='data1'&gt;${object.excludeValues}&lt;/@cms.dictionaryExcludeValue&gt;</p>
<p>&lt;@cms.dictionaryExcludeValue dictionaryId='data' excludeDictionaryId='data1' values='1,2'&gt;&lt;#list map as k,v&gt;${k}:${v.excludeValues}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.dictionaryExcludeValue&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/dictionaryExcludeValue?dictionaryId=data&amp;excludeDictionaryId=data1&amp;value=1', function(data){
     console.log(data.excludeValues);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-dictionaryList">dictionaryList 数据字典列表
<p>参数列表</p>
<ul>
 <li><code>name</code>:字典名称</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>name</code> : name 名称</li>
   <li><code>childDepth</code> : child depth
    <p>子级深度</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.dictionaryList name='data'&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.dictionaryList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/cms/dictionaryList?name=data', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-editorHistory">editorHistory 正文历史查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>itemType</code> : item type 项目类型</li>
   <li><code>itemId</code> : item id 项目id</li>
   <li><code>fieldName</code> : field name 字段名</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>userId</code> : user id 用户</li>
   <li><code>text</code> : content text 正文内容</li>
  </ul></li>
 <li><code>ids</code>: 多个id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.editorHistory id=1&gt;${object.text}&lt;/@cms.editorHistory&gt;</p>
<p>&lt;@cms.editorHistory ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.text}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.editorHistory&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/editorHistory?id=1&amp;appToken=接口访问授权Token', function(data){
     console.log(data.text);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-editorHistoryList">editorHistoryList 内容正文历史列表查询指令
<p>参数列表</p>
<ul>
 <li><code>itemType</code>:项目类型</li>
 <li><code>itemId</code>:项目id</li>
 <li><code>fieldName</code>:字段名</li>
 <li><code>userId</code>:用户id</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为发布日期倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>itemType</code> : item type 项目类型</li>
   <li><code>itemId</code> : item id 项目id</li>
   <li><code>fieldName</code> : field name 字段名</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>userId</code> : user id 用户</li>
   <li><code>text</code> : content text 正文内容</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.editorHistoryList contentId=1 fieldName='text' pageSize=10&gt;&lt;#list page.list as a&gt;${a.text}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.editorHistoryList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/editorHistoryList?contentId=1&amp;fieldName='text'&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-facetSearch">facetSearch 内容列表查询指令
<p>参数列表</p>
<ul style="padding-left:20px;"></ul>
<p>返回结果</p>
<ul>
 <li><code>page</code> 分面搜索结果
  <ul style="padding-left:20px;">
   <li><code>facetMap</code> : facet result map(field,(value,count))
    <p>分面搜索结果(字段名,(值,结果总数))</p></li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>userId</code> : user id 发布用户ID</li>
   <li><code>deptId</code> : dept id 发布用户部门ID</li>
   <li><code>checkUserId</code> : check user id 审核用户ID</li>
   <li><code>categoryId</code> : category id 分类ID</li>
   <li><code>modelId</code> : model id 模型ID</li>
   <li><code>parentId</code> : parent id 父内容ID</li>
   <li><code>quoteContentId</code> : quote content id 引用内容ID</li>
   <li><code>copied</code> : copied 转载</li>
   <li><code>author</code> : author 作者</li>
   <li><code>editor</code> : editor 编辑</li>
   <li><code>onlyUrl</code> : external link 外链</li>
   <li><code>hasImages</code> : has images 拥有图片列表</li>
   <li><code>hasFiles</code> : has files 拥有附件列表</li>
   <li><code>hasProducts</code> : has products 拥有产品列表</li>
   <li><code>hasStatic</code> : has static file 静态化</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>tagIds</code> : tag ids 多个标签id</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>childs</code> : childs 子内容数</li>
   <li><code>scores</code> : total scores 总分数</li>
   <li><code>scoreUsers</code> : score users 评分用户数</li>
   <li><code>score</code> : score 分数</li>
   <li><code>comments</code> : comments 评论数</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>collections</code> : collections 收藏数</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateUserId</code> : update user id 更新用户id</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>sort</code> : top 置顶级别</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending,3:Rejected) 状态(0:草稿,1:已发布,2:待审核,3:驳回)</li>
  </ul></li>
</ul>
<p>使用示例</p>
<pre>  &lt;@cms.facetSearch word='cms' pageSize=10&gt;
  &lt;p&gt; category: &lt;#list page.facetMap.categoryId as k,v&gt;&lt;@cms.category id=k&gt;${object.name}&lt;/@cms.category&gt;(${v})&lt;/#list&gt;&lt;/p&gt;
  &lt;p&gt; model: &lt;#list page.facetMap.modelId as k,v&gt;&lt;@cms.model id=k&gt;${object.name}&lt;/@cms.model&gt;(${v})&lt;/#list&gt;&lt;/p&gt;
  &lt;#list page.list as a&gt;&lt;p&gt;${a.title}&lt;/p&gt;&lt;/#list&gt;
  &lt;/@cms.facetSearch&gt;
 </pre>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/facetSearch?word=cms&amp;pageSize=10', function(data){
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-model">model 页面片段数据查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:内容模型id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>parentId</code> : parent id
    <p>父id</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>searchableModel</code> : searchable model
    <p>可搜索模型</p></li>
   <li><code>templatePath</code> : static template path
    <p>静态化模型路径</p></li>
   <li><code>contentPath</code> : content path
    <p>内容访问路径</p></li>
   <li><code>editorType</code> : editor type
    <p>编辑器类型</p></li>
   <li><code>coverWidth</code> : cover width
    <p>封面图宽度</p></li>
   <li><code>coverHeight</code> : cover height
    <p>封面图高度</p></li>
   <li><code>hasChild</code> : has child
    <p>拥有子模型</p></li>
   <li><code>onlyUrl</code> : extend link
    <p></p></li>
   <li><code>hasImages</code> : has image list
    <p>有用图片列表</p></li>
   <li><code>hasFiles</code> : has file list
    <p>拥有文件列表</p></li>
   <li><code>hasProducts</code> : has product list
    <p>拥有图片列表</p></li>
   <li><code>searchable</code> : text searchable
    <p>正文可搜索</p></li>
   <li><code>fieldList</code> : field list
    <p>字段列表</p></li>
   <li><code>requiredFieldList</code> : required field list
    <p>必填字段列表</p></li>
   <li><code>fieldTextMap</code> : field text map
    <p>字段文本</p></li>
   <li><code>extendList</code> : extend field list
    <p>扩展字段列表</p></li>
   <li><code>relatedList</code> : related list
    <p>推荐列表</p></li>
  </ul></li>
 <li><code>ids</code>: 多个内容模型id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.model id='article'&gt;${object.name}&lt;/@cms.model&gt;</p>
<p>&lt;@cms.model ids='article,link,picture'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.model&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/cms/model?id=article', function(data){
     console.log(data.name);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-modelList">modelList 内容模型列表查询指令
<p>参数列表</p>
<ul>
 <li><code>parentId</code>:父内容模型id</li>
 <li><code>queryAll</code>:查询所有模型,parentId为空时有效,【true,false】,默认false</li>
 <li><code>hasChild</code>:拥有子模型,【true,false】</li>
 <li><code>onlyUrl</code>:外链,【true,false】</li>
 <li><code>hasImages</code>:拥有图片列表,【true,false】</li>
 <li><code>hasFiles</code>:拥有文件列表,【true,false】</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>parentId</code> : parent id
    <p>父id</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>searchableModel</code> : searchable model
    <p>可搜索模型</p></li>
   <li><code>templatePath</code> : static template path
    <p>静态化模型路径</p></li>
   <li><code>contentPath</code> : content path
    <p>内容访问路径</p></li>
   <li><code>editorType</code> : editor type
    <p>编辑器类型</p></li>
   <li><code>coverWidth</code> : cover width
    <p>封面图宽度</p></li>
   <li><code>coverHeight</code> : cover height
    <p>封面图高度</p></li>
   <li><code>hasChild</code> : has child
    <p>拥有子模型</p></li>
   <li><code>onlyUrl</code> : extend link
    <p></p></li>
   <li><code>hasImages</code> : has image list
    <p>有用图片列表</p></li>
   <li><code>hasFiles</code> : has file list
    <p>拥有文件列表</p></li>
   <li><code>hasProducts</code> : has product list
    <p>拥有图片列表</p></li>
   <li><code>searchable</code> : text searchable
    <p>正文可搜索</p></li>
   <li><code>fieldList</code> : field list
    <p>字段列表</p></li>
   <li><code>requiredFieldList</code> : required field list
    <p>必填字段列表</p></li>
   <li><code>fieldTextMap</code> : field text map
    <p>字段文本</p></li>
   <li><code>extendList</code> : extend field list
    <p>扩展字段列表</p></li>
   <li><code>relatedList</code> : related list
    <p>推荐列表</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.modelList&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.modelList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/modelList', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-place">place 推荐位查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:推荐位id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>path</code> : place path 推荐位路径</li>
   <li><code>userId</code> : user id 创建用户id</li>
   <li><code>checkUserId</code> : check user id 审核用户id</li>
   <li><code>itemType</code> : item type 数据项类型</li>
   <li><code>itemId</code> : item id 数据项id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>url</code> : url 地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending) 状态(0:草稿,1:已发布,2:待审核,3:已下架)</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>maxClicks</code> : max clicks 最大点击数</li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
 <li><code>absoluteURL</code>:url处理为绝对路径 默认为<code> true</code></li>
 <li><code>containsAttribute</code>:默认为<code>false</code>,为true时<code>object.attribute</code>为推荐位扩展数据<code>map</code>(字段编码,<code>value</code>)</li>
 <li><code>ids</code>: 多个推荐位id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.place id=1&gt;${object.title}&lt;/@cms.place&gt;</p>
<p>&lt;@cms.place ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.place&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/place?id=1&amp;appToken=接口访问授权Token', function(data){
    console.log(data.title);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-placeList">placeList 推荐位列表查询指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:页面片段路径</li>
 <li><code>userId</code>:发布用户id</li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>status</code>:高级选项:数据状态,【0:操作,1:已发布,2:待审核】</li>
 <li><code>disabled</code>:高级选项:禁用状态,默认为<code>false</code></li>
 <li><code>startPublishDate</code>:起始发布日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endPublishDate</code>:终止发布日期,高级选项禁用时不能超过现在,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>itemType</code>:数据项类型,【content:内容,category:分类,custom:自定义】</li>
 <li><code>itemId</code>:数据项id</li>
 <li><code>absoluteURL</code>:url、封面图处理为绝对路径 默认为<code>true</code></li>
 <li><code>containsAttribute</code>:默认为<code>false</code>,http请求时为高级选项,为true时<code>place.attribute</code>为推荐位扩展数据<code>map</code>(字段编码,<code>value</code>)</li>
 <li><code>orderField</code> 排序字段,【createDate:创建日期,clicks:点击数】,默认发布日期按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>path</code> : place path 推荐位路径</li>
   <li><code>userId</code> : user id 创建用户id</li>
   <li><code>checkUserId</code> : check user id 审核用户id</li>
   <li><code>itemType</code> : item type 数据项类型</li>
   <li><code>itemId</code> : item id 数据项id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>url</code> : url 地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending) 状态(0:草稿,1:已发布,2:待审核,3:已下架)</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>maxClicks</code> : max clicks 最大点击数</li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.placeList path='/1.html' pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.placeList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/placeList?path=/1.html&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-search">search 内容列表查询指令
<p>参数列表</p>
<ul>
 <li><code>word</code>:搜索词,多个搜索词时取并集结果</li>
 <li><code>exclude</code>:排除词汇</li>
 <li><code>tagIds</code>:多个标签id,多个标签时取并集结果</li>
 <li><code>userId</code>:用户id</li>
 <li><code>parentId</code>:父内容id</li>
 <li><code>categoryId</code>:分类id</li>
 <li><code>containChild</code>:包含子分类,当categoryId不为空时有效</li>
 <li><code>categoryIds</code>:多个分类id,当categoryId为空时有效</li>
 <li><code>modelIds</code>:多个模型id</li>
 <li><code>extendsValues</code> 多个全文搜索字段値,格式：[字段编码]:字段値],例如:extendsValues='isbn:value1,unicode:value2'</li>
 <li><code>dictionaryValues</code> 多个字典搜索字段値,只有数据字典父级値時包含所有子级结果,格式：[字段编码]_[字段値],例如:dictionaryValues='extend1_value1,extend1_value2'</li>
 <li><code>dictionaryUnion</code> 取数据字典并集结果,dictionaryUnion不为空时有效,【true,false】,默认为交集结果</li>
 <li><code>highlight</code>:高亮关键词,【true,false】,默认为false,启用高亮后, 标题、作者、编辑、描述字段应该加?no_esc以使高亮html生效,cms会自动对原值有进行html安全转义</li>
 <li><code>preTag</code>:高亮前缀,启用高亮时有效,默认为"&lt;B&gt;"</li>
 <li><code>postTag</code>:高亮后缀,启用高亮时有效,默认为"&lt;/B&gt;"</li>
 <li><code>projection</code>:投影结果,【true,false】,默认为false</li>
 <li><code>phrase</code>:精确搜索,【true,false】,默认为false</li>
 <li><code>fields</code>:搜索字段,【title:标题, author:作者, editor:编辑, description:描述, text:正文,files:附件】</li>
 <li><code>containsAttribute</code>默认为<code>false</code>,http请求时为高级选项,为true时<code>content.attribute</code>为内容扩展数据<code>map</code>(字段编码,<code>value</code>)</li>
 <li><code>startPublishDate</code>:起始发布日期,【2000-01-01 23:59:59】,【2000-01-01】</li>
 <li><code>endPublishDate</code>:终止发布日期,【2000-01-01 23:59:59】,【2000-01-01】</li>
 <li><code>orderField</code> 排序字段,【clicks:点击数倒序,score:分数倒序,publishDate:发布日期倒序,collections:收藏数倒叙,minPrice:最低价格,maxPrice:最高价格,extend.sort1-extend.sort10]:扩展字段排序标志】,默认相关度倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
 <li><code>maxResults</code>:最大结果数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>title</code> : title 标题</li>
   <li><code>userId</code> : user id 发布用户ID</li>
   <li><code>deptId</code> : dept id 发布用户部门ID</li>
   <li><code>checkUserId</code> : check user id 审核用户ID</li>
   <li><code>categoryId</code> : category id 分类ID</li>
   <li><code>modelId</code> : model id 模型ID</li>
   <li><code>parentId</code> : parent id 父内容ID</li>
   <li><code>quoteContentId</code> : quote content id 引用内容ID</li>
   <li><code>copied</code> : copied 转载</li>
   <li><code>author</code> : author 作者</li>
   <li><code>editor</code> : editor 编辑</li>
   <li><code>onlyUrl</code> : external link 外链</li>
   <li><code>hasImages</code> : has images 拥有图片列表</li>
   <li><code>hasFiles</code> : has files 拥有附件列表</li>
   <li><code>hasProducts</code> : has products 拥有产品列表</li>
   <li><code>hasStatic</code> : has static file 静态化</li>
   <li><code>url</code> : url 链接地址</li>
   <li><code>description</code> : description 描述</li>
   <li><code>tagIds</code> : tag ids 多个标签id</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>childs</code> : childs 子内容数</li>
   <li><code>scores</code> : total scores 总分数</li>
   <li><code>scoreUsers</code> : score users 评分用户数</li>
   <li><code>score</code> : score 分数</li>
   <li><code>comments</code> : comments 评论数</li>
   <li><code>clicks</code> : clicks 点击数</li>
   <li><code>collections</code> : collections 收藏数</li>
   <li><code>publishDate</code> : publish date 发布日期</li>
   <li><code>expiryDate</code> : expiry date 过期日期</li>
   <li><code>checkDate</code> : check date 审核日期</li>
   <li><code>updateUserId</code> : update user id 更新用户id</li>
   <li><code>updateDate</code> : update date 更新日期</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>sort</code> : top 置顶级别</li>
   <li><code>status</code> : status(0:Draft,1:Published,2:Pending,3:Rejected) 状态(0:草稿,1:已发布,2:待审核,3:驳回)</li>
  </ul></li>
</ul>
使用示例
<p>&lt;@cms.search word='cms' pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.search&gt;</p>
<pre>  &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/search?word=cms&amp;pageSize=10', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-survey">survey 调查问卷查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:调查问卷id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id 发布用户id</li>
   <li><code>surveyType</code> : survey type(survey,exam) 问卷类型(survey:问卷,exam:考试)</li>
   <li><code>title</code> : title 标题</li>
   <li><code>description</code> : description 描述</li>
   <li><code>votes</code> : votes 投票次数</li>
   <li><code>startDate</code> : start date 开始日期</li>
   <li><code>endDate</code> : end date 结束日期</li>
   <li><code>allowAnonymous</code> : allow anonymous 允许匿名</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>ids</code>: 多个调查问卷id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.survey id=1&gt;${object.title}&lt;/@cms.survey&gt;</p>
<p>&lt;@cms.survey ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.survey&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/cms/survey?id=1', function(data){
   console.log(data.title);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-surveyList">surveyList 问卷调查列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:发布用户id</li>
 <li><code>surveyType</code>:问卷类型,【exam:考试,survey:问卷调查】</li>
 <li><code>startStartDate</code>:起始开始日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endStartDate</code>:终止开始日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>startEndDate</code>:起始结束日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endEndDate</code>:终止结束日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>title</code>:标题</li>
 <li><code>disabled</code>:已禁用,默认为<code>false</code></li>
 <li><code>orderField</code> 排序字段,【votes:参与人数,startDate:开始日期,endDate:结束日期,createTime:创建日期】,默认id按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id 发布用户id</li>
   <li><code>surveyType</code> : survey type(survey,exam) 问卷类型(survey:问卷,exam:考试)</li>
   <li><code>title</code> : title 标题</li>
   <li><code>description</code> : description 描述</li>
   <li><code>votes</code> : votes 投票次数</li>
   <li><code>startDate</code> : start date 开始日期</li>
   <li><code>endDate</code> : end date 结束日期</li>
   <li><code>allowAnonymous</code> : allow anonymous 允许匿名</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.surveyList pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.surveyList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/cms/surveyList?pageSize=10', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-surveyQuestion">surveyQuestion 调查问卷问题查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:调查问卷问题id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>surveyId</code> : survey id
    <p>问卷id</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>score</code> : score
    <p>分数</p></li>
   <li><code>questionType</code> : question type[radio,select,checkbox,text,file,picture]
    <p>问题类型[radio:单选,select:下拉选择,checkbox:复选框,text:文字,file:文件,picture:图片]</p></li>
   <li><code>cover</code> : cover
    <p>图片</p></li>
   <li><code>answer</code> : answer
    <p>答案</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
 <li><code>ids</code>: 多个调查问卷问题id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
 <li><code>absoluteURL</code>:封面图处理为绝对路径 默认为<code>true</code></li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.surveyQuestion id=1&gt;${object.title}&lt;/@cms.surveyQuestion&gt;</p>
<p>&lt;@cms.surveyQuestion ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.surveyQuestion&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/cms/surveyQuestion?id=1&amp;appToken=接口访问授权Token', function(data){
   console.log(data.title);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-surveyQuestionItem">surveyQuestionItem 调查问卷问题选项查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:调查问卷问题id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>questionId</code> : question id
    <p>问题id</p></li>
   <li><code>votes</code> : votes
    <p>票数</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
 <li><code>ids</code>: 多个调查问卷问题id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.surveyQuestionItem id=1&gt;${object.title}&lt;/@cms.surveyQuestionItem&gt;</p>
<p>&lt;@cms.surveyQuestionItem ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.surveyQuestionItem&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/cms/surveyQuestionItem?id=1', function(data){
   console.log(data.title);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-surveyQuestionItemList">surveyQuestionItemList 问卷调查问题选项列表查询指令
<p>参数列表</p>
<ul>
 <li><code>questionId</code>:问题id</li>
 <li><code>orderField</code>:排序字段,【votes:得票数量】,默认sort按顺序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>questionId</code> : question id
    <p>问题id</p></li>
   <li><code>votes</code> : votes
    <p>票数</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.surveyQuestionItemList questionId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.surveyQuestionItemList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/surveyQuestionItemList?questionId=1&amp;pageSize=10', function(data){
  console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-surveyQuestionList">surveyQuestionList 问卷调查问题列表查询指令
<p>参数列表</p>
<ul>
 <li><code>surveyId</code>:问卷调查id</li>
 <li><code>questionTypes</code> 多个问题类型,【radio:单选,select:下拉选择,checkbox:复选框,text:文字,file:文件,picture:图片】</li>
 <li><code>absoluteURL</code>:封面图处理为绝对路径 默认为<code>true</code></li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为排序顺序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>surveyId</code> : survey id
    <p>问卷id</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>score</code> : score
    <p>分数</p></li>
   <li><code>questionType</code> : question type[radio,select,checkbox,text,file,picture]
    <p>问题类型[radio:单选,select:下拉选择,checkbox:复选框,text:文字,file:文件,picture:图片]</p></li>
   <li><code>cover</code> : cover
    <p>图片</p></li>
   <li><code>answer</code> : answer
    <p>答案</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.surveyQuestionList surveyId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.surveyQuestionList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/surveyQuestionList?surveyId=1&amp;pageSize=10', function(data){
  console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-tag">tag 标签查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:标签id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>typeId</code> : type id
    <p>类型id</p></li>
   <li><code>searchCount</code> : search count
    <p>搜索次数</p></li>
  </ul></li>
 <li><code>ids</code>: 多个标签id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.tag id=1&gt;${object.name}&lt;/@cms.tag&gt;</p>
<p>&lt;@cms.tag ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.tag&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/tag?id=1', function(data){
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-tagList">tagList 标签列表查询指令
<p>参数列表</p>
<ul>
 <li><code>typeId</code>:标签类型id</li>
 <li><code>name</code>:标签名</li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>orderField</code>:高级选项:排序字段,【searchCount:搜索次数】,默认searchCount按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>typeId</code> : type id
    <p>类型id</p></li>
   <li><code>searchCount</code> : search count
    <p>搜索次数</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.tagList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.tagList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/tagList?pageSize=10', function(data){
  console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-tagType">tagType 标签类型查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:标签类型id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>count</code> : tag count
    <p>标签个数</p></li>
  </ul></li>
 <li><code>ids</code>: 多个标签类型id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.tagType id=1&gt;${object.name}&lt;/@cms.tagType&gt;</p>
<p>&lt;@cms.tagType ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.tagType&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/tagType?id=1', function(data){
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-tagTypeList">tagTypeList 标签类型列表查询指令
<p>参数列表</p>
<ul>
 <li><code>name</code>:标签名</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>count</code> : tag count
    <p>标签个数</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.tagTypeList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.tagTypeList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/tagTypeList?pageSize=10', function(data){
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userCollection">userCollection 用户收藏查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>contentId</code>:内容id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>contentIds</code> 多个项目id,逗号或空格间隔,当contentId为空时生效,结果返回<code>map</code>(contentId,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userCollection userId=1 contentId=1&gt;${object.scores}&lt;/@cms.userCollection&gt;</p>
<p>&lt;@cms.userCollection userId=1 contentIds='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.contentId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userCollection&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userCollection?id=1', function(data){
  console.log(data.scores);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userCollectionList">userCollectionList 用户评分列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>contentId</code>:内容id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userCollectionList userId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.scores}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userCollectionList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userCollectionList?userId=1&amp;pageSize=10', function(data){
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userScore">userScore 用户评分查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>itemType</code>:项目类型</li>
 <li><code>itemId</code>:项目id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>score</code> : score 分数</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>itemIds</code> 多个项目id,逗号或空格间隔,当itemId为空时生效,结果返回<code>map</code>(itemId,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userScore userId=1 itemType="content" itemId=1&gt;${object.scores}&lt;/@cms.userScore&gt;</p>
<p>&lt;@cms.userScore userId=1 itemType="content" itemIds='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.scores}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userScore&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userScore?id=1', function(data){
  console.log(data.scores);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userScoreList">userScoreList 用户评分列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>itemType</code>:项目类型</li>
 <li><code>itemId</code>:项目id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>score</code> : score 分数</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userScoreList userId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.scores}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userScoreList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userScoreList?userId=1&amp;pageSize=10', function(data){
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userSurvey">userSurvey 用户问卷回答查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>surveyId</code>:问卷id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>anonymous</code> : anonymous 匿名用户</li>
   <li><code>score</code> : score 分数</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>surveyIds</code> 多个问卷id,逗号或空格间隔,当surveyId为空且userId不为空时生效,结果返回<code>map</code>(surveyId,<code>object</code>)</li>
 <li><code>userIds</code> 多个用户id,逗号或空格间隔,当userId为空且surveyId不为空时生效,结果返回<code>map</code>(userId,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userSurvey id=1&gt;${object.score}&lt;/@cms.userSurvey&gt;</p>
<p>&lt;@cms.userSurvey ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.score}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userSurvey&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userSurvey?id=1&amp;appToken=接口访问授权Token', function(data){
  console.log(data.score);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userSurveyList">userSurveyList 用户问卷回答列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>surveyId</code>:问卷id</li>
 <li><code>orderField</code>:排序字段,【score:评分,createDate:创建日期】,默认createDate按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>anonymous</code> : anonymous 匿名用户</li>
   <li><code>score</code> : score 分数</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userSurveyList userId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.score}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userSurveyList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userSurveyList?userId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userSurveyQuestion">userSurveyQuestion 用户问卷问题解答查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>questionId</code>:问题id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>surveyId</code> : survey id
    <p>问卷调查id</p></li>
   <li><code>answer</code> : answer
    <p>答案</p></li>
   <li><code>score</code> : score
    <p>分数</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
  </ul></li>
 <li><code>questionIds</code> 多个问题id,逗号或空格间隔,当questionId为空且userId不为空时生效,结果返回<code>map</code>(questionId,<code>object</code>)</li>
 <li><code>userIds</code> 多个用户id,逗号或空格间隔,当userId为空且questionId不为空时生效,结果返回<code>map</code>(userId,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userSurveyQuestion id=1&gt;${object.answer}&lt;/@cms.userSurveyQuestion&gt;</p>
<p>&lt;@cms.userSurveyQuestion ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.answer}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userSurveyQuestion&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userSurveyQuestion?id=1&amp;appToken=接口访问授权Token', function(data){
  console.log(data.answer);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userSurveyQuestionList">userSurveyQuestionList 用户问卷问题解答列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>questionId</code>:问题id</li>
 <li><code>surveyId</code>:问卷id</li>
 <li><code>orderField</code>:排序字段,【score:评分,createDate:创建日期】,默认createDate按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>surveyId</code> : survey id
    <p>问卷调查id</p></li>
   <li><code>answer</code> : answer
    <p>答案</p></li>
   <li><code>score</code> : score
    <p>分数</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userSurveyQuestionList userId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.answer}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userSurveyQuestionList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userSurveyQuestionList?userId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userVote">userVote 用户投票查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>voteId</code>:投票id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>anonymous</code> : anonymous 匿名用户</li>
   <li><code>itemId</code> : item id 选项id</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>voteIds</code> 多个投票id,逗号或空格间隔,当voteId为空时生效,结果返回<code>map</code>(voteId,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userVote id=1&gt;${object.itemId}&lt;/@cms.userVote&gt;</p>
<p>&lt;@cms.userVote ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.itemId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userVote&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userVote?id=1', function(data){
  console.log(data.itemId);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-userVoteList">userVoteList 用户投票列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>voteId</code>:投票id</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为创建日期倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>anonymous</code> : anonymous 匿名用户</li>
   <li><code>itemId</code> : item id 选项id</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.userVoteList userId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.ip}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.userVoteList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/userVoteList?userId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-vote">vote 投票查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:投票id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>startDate</code> : start date 开始日期</li>
   <li><code>endDate</code> : end date 结束日期</li>
   <li><code>votes</code> : votes 投票次数</li>
   <li><code>title</code> : title 标题</li>
   <li><code>description</code> : description 描述</li>
   <li><code>allowAnonymous</code> : allow anonymous 允许匿名</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>ids</code>: 多个投票id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.vote id=1&gt;${object.title}&lt;/@cms.vote&gt;</p>
<p>&lt;@cms.vote ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.vote&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/vote?id=1', function(data){
  console.log(data.title);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-voteItem">voteItem 投票选项查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:投票选项id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>voteId</code> : vote id
    <p>投票id</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>votes</code> : votes
    <p>票数</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
 <li><code>ids</code>: 多个投票选项id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.voteItem id=1&gt;${object.title}&lt;/@cms.voteItem&gt;</p>
<p>&lt;@cms.voteItem ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.voteItem&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/voteItem?id=1', function(data){
  console.log(data.title);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-voteItemList">voteItemList 投票选项列表查询指令
<p>参数列表</p>
<ul>
 <li><code>voteId</code>:投票id</li>
 <li><code>orderField</code>:排序字段,【votes:投票人数,sort:排序正序】,默认sort按正序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>voteId</code> : vote id
    <p>投票id</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>votes</code> : votes
    <p>票数</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.voteItemList voteId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.voteItemList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/voteItemList?voteId=1&amp;pageSize=10', function(data){
console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-voteList">voteList 投票列表查询指令
<p>参数列表</p>
<ul>
 <li><code>startStartDate</code>:起始开始日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endStartDate</code>:终止开始日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>startEndDate</code>:起始结束日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endEndDate</code>:终止结束日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>disabled</code>:高级选项:禁用状态,默认为<code>false</code></li>
 <li><code>title</code>:高级选项:标题</li>
 <li><code>orderField</code>:排序字段,【startDate:开始日期,endDate:结束,votes:投票人数,createDate:创建日期】,默认id按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>startDate</code> : start date 开始日期</li>
   <li><code>endDate</code> : end date 结束日期</li>
   <li><code>votes</code> : votes 投票次数</li>
   <li><code>title</code> : title 标题</li>
   <li><code>description</code> : description 描述</li>
   <li><code>allowAnonymous</code> : allow anonymous 允许匿名</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.voteList pageSize=10&gt;&lt;#list page.list as a&gt;${a.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.voteList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/voteList?pageSize=10', function(data){
console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-word">word 搜索词查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:搜索词id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 名称</li>
   <li><code>searchCount</code> : search count 搜索次数</li>
   <li><code>hidden</code> : hidden 隐藏</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>ids</code>: 多个搜索词id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.word id=1&gt;${object.name}&lt;/@cms.word&gt;</p>
<p>&lt;@cms.word ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.word&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/word?id=1&amp;appToken=接口访问授权Token', function(data){
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-wordList">wordList 用户投票列表查询指令
<p>参数列表</p>
<ul>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>hidden</code>:高级选项:禁用状态,默认为<code>false</code></li>
 <li><code>name</code>:高级选项:名称</li>
 <li><code>orderField</code> 高级选项:排序,【searchCount:搜索次数,createDate:创建日期,id:id】默认为searchCount按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为创建日期倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 名称</li>
   <li><code>searchCount</code> : search count 搜索次数</li>
   <li><code>hidden</code> : hidden 隐藏</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.wordList userId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.ip}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.wordList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/cms/wordList?userId=1&amp;pageSize=10', function(data){
console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="cms-workload">wordload 工作量查询指令
<p>参数列表</p>
<ul>
 <li><code>status</code>:多个内容状态,【0:草稿,1:已发布,2:待审核,3:驳回】</li>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>workloadType</code>:工作量类型【dept:部门,user:用户】,默认部门</li>
 <li><code>dateField</code>:日期字段【createDate:创建日期,publishDate:发布日期】,默认创建日期</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;"></ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@cms.wordload pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@cms.wordload&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/cms/wordload?pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="log-loginList">logLoginList 登录日志列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>channel</code>:登录渠道</li>
 <li><code>loginMethod</code>:登录方式</li>
 <li><code>result</code>:登录结果,【true,false】</li>
 <li><code>name</code>:用户名</li>
 <li><code>ip</code>:IP</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>用户名</p></li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>channel</code> : login channel
    <p>登录渠道</p></li>
   <li><code>loginMethod</code> : login method
    <p>登录方式</p></li>
   <li><code>result</code> : login result
    <p>登录结果</p></li>
   <li><code>createDate</code> : login date
    <p>登录日期</p></li>
   <li><code>errorPassword</code> : error password
    <p>错误密码</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@log.loginList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@log.loginList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/log/loginList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="log-operate">logOperate 操作日志查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:日志id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>deptId</code> : dept id
    <p>部门id</p></li>
   <li><code>channel</code> : channel
    <p>渠道</p></li>
   <li><code>operate</code> : operate channel
    <p>操作渠道</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : operate date
    <p>操作日期</p></li>
   <li><code>content</code> : content
    <p>内容</p></li>
  </ul></li>
 <li><code>ids</code>: 多个日志id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@log.operate id=1&gt;${object.content}&lt;/@log.operate&gt;</p>
<p>&lt;@log.operate ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.content}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@log.operate&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/log/operate?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.content);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="log-operateList">logOperateList 操作日志列表查询指令
<p>参数列表</p>
<ul>
 <li><code>channel</code>:渠道</li>
 <li><code>operate</code>:操作编码</li>
 <li><code>userId</code>:用户ID</li>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>content</code>:操作内容</li>
 <li><code>name</code>:用户名</li>
 <li><code>ip</code>:IP</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>deptId</code> : dept id
    <p>部门id</p></li>
   <li><code>channel</code> : channel
    <p>渠道</p></li>
   <li><code>operate</code> : operate channel
    <p>操作渠道</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : operate date
    <p>操作日期</p></li>
   <li><code>content</code> : content
    <p>内容</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@log.operateList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@log.operateList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/log/OperateList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="log-task">logTask 任务计划日志查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:日志id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>taskId</code> : task id
    <p>任务id</p></li>
   <li><code>begintime</code> : begin time
    <p>开始日期</p></li>
   <li><code>endtime</code> : end timeb
    <p>结束日期</p></li>
   <li><code>success</code> : success
    <p>执行成功</p></li>
   <li><code>result</code> : result
    <p>执行结果</p></li>
  </ul></li>
 <li><code>ids</code>: 多个日志id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@log.task id=1&gt;${object.result}&lt;/@log.task&gt;</p>
<p>&lt;@log.task ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.result}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@log.task&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/log/task?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.result);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="log-taskList">logTaskList 任务计划日志列表查询指令
<p>参数列表</p>
<ul>
 <li><code>taskId</code>:任务计划ID</li>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>success</code>:执行结果,【true,false】</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>taskId</code> : task id
    <p>任务id</p></li>
   <li><code>begintime</code> : begin time
    <p>开始日期</p></li>
   <li><code>endtime</code> : end timeb
    <p>结束日期</p></li>
   <li><code>success</code> : success
    <p>执行成功</p></li>
   <li><code>result</code> : result
    <p>执行结果</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@log.taskList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@log.taskList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/log/TaskList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="log-uploadList">logUploadList 文件上传日志列表查询指令
<p>参数列表</p>
<ul>
 <li><code>fileTypes</code>:文件类型,【image,video,audio,document,other】</li>
 <li><code>image</code>:是否图片,【true,false】</li>
 <li><code>userId</code>:用户ID</li>
 <li><code>channel</code>:渠道</li>
 <li><code>privatefile</code>:私有文件,【true,false】,默认<code>false</code></li>
 <li><code>originalName</code>:原文件名</li>
 <li><code>filePath</code>:文件路径</li>
 <li><code>orderField</code>:排序字段,[createDate:创建日期,fileSize:文件大小],默认ID倒序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id 用户id</li>
   <li><code>channel</code> : operate channel 操作渠道</li>
   <li><code>originalName</code> : original name 原文件名</li>
   <li><code>privatefile</code> : privatefile 私有文件</li>
   <li><code>fileType</code> : file type 文件类型</li>
   <li><code>fileSize</code> : file size 文件大小</li>
   <li><code>width</code> : image width 图片宽度</li>
   <li><code>height</code> : image height 图片高度</li>
   <li><code>ip</code> : ip</li>
   <li><code>createDate</code> : upload date 上传日期</li>
   <li><code>filePath</code> : file path 文件路径</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@log.uploadList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@log.uploadList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/log/UploadList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-app">sysApp 应用查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:应用id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>channel</code> : channel
    <p>渠道</p></li>
   <li><code>appKey</code> : app key
    <p>授权key</p></li>
   <li><code>appSecret</code> : app secret
    <p>授权密钥</p></li>
   <li><code>authorizedApis</code> : authorized apis
    <p>授权接口</p></li>
   <li><code>expiryMinutes</code> : expiry minutes
    <p>过期分钟数</p></li>
  </ul></li>
 <li><code>ids</code>: 多个应用id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@sys.app id=1&gt;${object.channel}&lt;/@sys.app&gt;</p>
<p>&lt;@sys.app ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.channel}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.app&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/app?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.channel);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-appClient">sysAppClient 应用客户端查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:客户端id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>channel</code> : channel
    <p>渠道</p></li>
   <li><code>uuid</code> : uuid
    <p>唯一id</p></li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>clientVersion</code> : client version
    <p>客户端版本</p></li>
   <li><code>lastLoginDate</code> : last login date
    <p>上次登录日期</p></li>
   <li><code>lastLoginIp</code> : last login ip
    <p>上次登录ip</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
  </ul></li>
 <li><code>ids</code>: 多个客户端id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.appClient id=1&gt;${object.clientVersion}&lt;/@sys.appClient&gt;</p>
<p>&lt;@sys.appClient ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.clientVersion}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.appClient&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/appClient?id=1&amp;appToken=接口访问授权Token', function(data){
  console.log(data.clientVersion);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-appClientList">sysAppClientList 应用客户端列表查询指令
<p>参数列表</p>
<ul>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>disabled</code>:高级选项:禁用状态,【true,false】,默认false</li>
 <li><code>channel</code>:渠道</li>
 <li><code>userId</code>:用户id</li>
 <li><code>startLastLoginDate</code>:起始上次登录日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endLastLoginDate</code>:终止上次登录日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderField</code> 排序字段,[lastLoginDate:上次登录日期,createDate:创建日期],默认创建日期倒序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>channel</code> : channel
    <p>渠道</p></li>
   <li><code>uuid</code> : uuid
    <p>唯一id</p></li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>clientVersion</code> : client version
    <p>客户端版本</p></li>
   <li><code>lastLoginDate</code> : last login date
    <p>上次登录日期</p></li>
   <li><code>lastLoginIp</code> : last login ip
    <p>上次登录ip</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.appClientList pageSize=10&gt;&lt;#list page.list as a&gt;${a.uuid}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.appClientList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/appClientList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-appList">sysAppList 应用列表查询指令
<p>参数列表</p>
<ul>
 <li><code>channel</code>:渠道</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>channel</code> : channel
    <p>渠道</p></li>
   <li><code>appKey</code> : app key
    <p>授权key</p></li>
   <li><code>appSecret</code> : app secret
    <p>授权密钥</p></li>
   <li><code>authorizedApis</code> : authorized apis
    <p>授权接口</p></li>
   <li><code>expiryMinutes</code> : expiry minutes
    <p>过期分钟数</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.appList pageSize=10&gt;&lt;#list page.list as a&gt;${a.channel}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.appList&gt;</p></div>
        <div class="block" data-id="sys-appTokenList">sysAppTokenList 应用授权列表查询指令
<p>参数列表</p>
<ul>
 <li><code>appId</code>:应用id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>authToken</code> : auth token
    <p>授权验证码</p></li>
   <li><code>appId</code> : app id
    <p>应用id</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>expiryDate</code> : expiry date
    <p>过期日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.appTokenList pageSize=10&gt;&lt;#list page.list as a&gt;${a.authToken}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.appTokenList&gt;</p></div>
        <div class="block" data-id="sys-authorized">sysAuthorized 角色url授权查询指令
<p>参数列表</p>
<ul>
 <li><code>roleIds</code>:多个角色id</li>
 <li><code>url</code> url,roleIds、url都存在时,结果返回<code>true</code>或<code>false</code>,表示这些角色是否拥有该url的权限</li>
 <li><code>urls</code> 多个url,当roleIds存在,且url为空时生效,结果返回<code>map</code>(url,<code>true</code>或<code>false</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.authorized roleIds='1,2,3' url='cmsContent/list'&gt;${object}&lt;/@sys.authorized&gt;</p>
<p>&lt;@sys.authorized roleIds='1,2,3' urls='cmsContent/list,cmsCategory/list'&gt;&lt;#list map as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.authorized&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/authorized?roleIds=1,2,3&amp;url=cmsContent/list&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-clusterList">sysClusterList 系统节点列表查询指令
<p>参数列表</p>
<ul>
 <li><code>startHeartbeatDate</code>:起始心跳日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endHeartbeatDate</code>:终止心跳日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>master</code>:是否主节点,【true,false】,默认false</li>
 <li><code>orderField</code>:排序字段,[createDate:上次登录日期,heartbeatDate:创建日期,id],默认id倒序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>uuid</code> : uuid</li>
   <li><code>createDate</code> : startup date
    <p>启动日期</p></li>
   <li><code>heartbeatDate</code> : heart beat date
    <p>上次心跳日期</p></li>
   <li><code>master</code> : master
    <p>管理节点</p></li>
   <li><code>cmsVersion</code> : cms version
    <p>cms版本</p></li>
   <li><code>revision</code> : revision
    <p>修改版本</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.clusterList pageSize=10&gt;&lt;#list page.list as a&gt;${a.uuid}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.clusterList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/clusterList?pageSize=10', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-config">sysConfig 配置查询指令
<p>参数列表</p>
<ul>
 <li><code>code</code>:配置编码,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>code</code> : code
    <p>编码</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>customed</code> : customed
    <p>自定义</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.config code='site'&gt;${object.description}&lt;/@sys.config&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/config?code=site&amp;appToken=接口访问授权Token', function(data){
  console.log(data.description);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-configData">sysConfigData 配置数据查询指令
<p>参数列表</p>
<ul>
 <li><code>code</code>:配置编码,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>data</code> : config data
    <p>配置数据</p></li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>updateDate</code> : update date 更新日期</li>
  </ul></li>
 <li><code>codes</code>:多个配置编码,结果返回<code>map</code>(code,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.configData code='site'&gt;${object.register_url}&lt;/@sys.configData&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/configData?code=site&amp;appToken=接口访问授权Token', function(data){
 console.log(data.register_url);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-configFieldList">sysConfigFieldList 配置数据字段列表查询指令
<p>参数列表</p>
<ul>
 <li><code>code</code>:配置编码</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>required</code> : required 必填</li>
   <li><code>searchable</code> : searchable 可搜索</li>
   <li><code>sortable</code> : sortable field 排序字段</li>
   <li><code>maxlength</code> : max length 最大长度</li>
   <li><code>width</code> : image width 图片宽度</li>
   <li><code>height</code> : image height 图片高度</li>
   <li><code>name</code> : name 名称</li>
   <li><code>description</code> : description 描述</li>
   <li><code>inputType</code> : input type 表单类型</li>
   <li><code>defaultValue</code> : default value 默认值</li>
   <li><code>dictionaryId</code> : dictionary id 数据字典</li>
   <li><code>multiple</code> : multiple 多选</li>
   <li><code>sort</code> : sort 排序</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.configFieldList pageSize=10&gt;&lt;#list list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.configFieldList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/configFieldList?appToken=接口访问授权Token', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-configList">sysConfigList 配置列表查询指令
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>code</code> : code
    <p>编码</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>customed</code> : customed
    <p>自定义</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.configList&gt;&lt;#list list as a&gt;${a.code}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.configList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/configList?appToken=接口访问授权Token', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-dept">sysDept 部门查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:部门id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>code</code> : code
    <p>编码</p></li>
   <li><code>parentId</code> : parent id
    <p>父部门id</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>userId</code> : manage user id
    <p>负责用户id</p></li>
   <li><code>hasChild</code> : has child
    <p>拥有子部门</p></li>
   <li><code>maxSort</code> : max content sort
    <p>最大内容置顶级别</p></li>
   <li><code>ownsAllCategory</code> : owns all category
    <p>拥有全部分类</p></li>
   <li><code>ownsAllPage</code> : owns all page
    <p>拥有全部页面</p></li>
   <li><code>ownsAllConfig</code> : owns all config
    <p>拥有全部配置</p></li>
  </ul></li>
 <li><code>ids</code>: 多个部门id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@sys.dept id=1&gt;${object.name}&lt;/@sys.dept&gt;</p>
<p>&lt;@sys.dept ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.dept&gt;</p>
<pre>&lt;script&gt;
$.getJSON('//sys.publicsys.com/api/directive/sys/dept?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-deptItem">sysDeptItem 数据授权查询指令
<p>参数列表</p>
<ul>
 <li><code>deptId</code>:部门id</li>
 <li><code>ItemId</code> 分类id,deptId、ItemId都存在时,结果返回<code>true</code>或<code>false</code>,表示该部门是否拥有该分类下内容的数据权限</li>
 <li><code>ItemIds</code> 多个分类id,当deptId存在,且ItemId为空时生效,结果返回<code>map</code>(分类id,<code>true</code>或<code>false</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.deptItem deptId=1 ItemId=1&gt;${object}&lt;/@sys.deptItem&gt;</p>
<p>&lt;@sys.deptItem deptId=1 ItemIds=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.deptItem&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/deptItem?deptId=1&amp;ItemId=1&amp;appToken=接口访问授权Token', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-deptItemList">sysDeptItemList 部门数据授权列表查询指令
<p>参数列表</p>
<ul>
 <li><code>deptId</code>:部门id</li>
 <li><code>itemType</code>:项目类型</li>
 <li><code>itemId</code>:项目id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.deptCategoryList deptId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.id.deptId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.deptCategoryList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/deptCategoryList?deptId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-deptList">sysDeptList 部门列表查询指令
<p>参数列表</p>
<ul>
 <li><code>parentId</code>:父部门id</li>
 <li><code>userId</code>:负责人id</li>
 <li><code>name</code>:名称</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>code</code> : code
    <p>编码</p></li>
   <li><code>parentId</code> : parent id
    <p>父部门id</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>userId</code> : manage user id
    <p>负责用户id</p></li>
   <li><code>hasChild</code> : has child
    <p>拥有子部门</p></li>
   <li><code>maxSort</code> : max content sort
    <p>最大内容置顶级别</p></li>
   <li><code>ownsAllCategory</code> : owns all category
    <p>拥有全部分类</p></li>
   <li><code>ownsAllPage</code> : owns all page
    <p>拥有全部页面</p></li>
   <li><code>ownsAllConfig</code> : owns all config
    <p>拥有全部配置</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.deptList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.deptList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/deptList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-domain">sysDomain 域名查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:域名,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>name</code> : domain name
    <p>域名</p></li>
   <li><code>siteId</code> : site id
    <p>站点id</p></li>
   <li><code>wild</code> : wild
    <p>通配域名</p></li>
   <li><code>path</code> : root template path
    <p>模板根目录</p></li>
  </ul></li>
 <li><code>ids</code>: 多个域名,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@sys.domain id='www.publiccms.com'&gt;${object.name}&lt;/@sys.domaing&gt;</p>
<p>&lt;@sys.domain ids='www.publiccms.com,www.sanluan.com'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.domain&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/domain?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-domainList">sysDomainList 域名列表查询指令
<p>参数列表</p>
<ul>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>siteId</code>:高级选项:站点id</li>
 <li><code>wild</code>:高级选项:通配域名,【true,false】</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>name</code> : domain name
    <p>域名</p></li>
   <li><code>siteId</code> : site id
    <p>站点id</p></li>
   <li><code>wild</code> : wild
    <p>通配域名</p></li>
   <li><code>path</code> : root template path
    <p>模板根目录</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.domainList deptId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.domainList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/domainList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
    console.log(data.page.totalCount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-extendFieldList">sysExtendFieldList 扩展字段列表查询指令
<p>参数列表</p>
<ul>
 <li><code>extendId</code>:扩展id</li>
 <li><code>inputType</code>:多个输入框类型【text:输入框,number:数字,textarea:多行文本,file:文件,image:图片,video:视频,password:密码,editor:百度编辑器,ckeditor:CK编辑器,tinymce:TinyMCE编辑器,date:日期,datetime:时间,color:颜色,alphaColor:带透明度的颜色,template:模板路径,boolean:是否,user:用户,dept:部门,content:内容,category:分类,dictionary:数据字典,categoryType:分类类型,tagType:标签类型,vote:投票,survey:调查问卷,tag:标签】</li>
 <li><code>searchable</code>:可搜索,【true,false】</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>required</code> : required 必填</li>
   <li><code>searchable</code> : searchable 可搜索</li>
   <li><code>sortable</code> : sortable field 排序字段</li>
   <li><code>maxlength</code> : max length 最大长度</li>
   <li><code>width</code> : image width 图片宽度</li>
   <li><code>height</code> : image height 图片高度</li>
   <li><code>name</code> : name 名称</li>
   <li><code>description</code> : description 描述</li>
   <li><code>inputType</code> : input type 表单类型</li>
   <li><code>defaultValue</code> : default value 默认值</li>
   <li><code>dictionaryId</code> : dictionary id 数据字典</li>
   <li><code>multiple</code> : multiple 多选</li>
   <li><code>sort</code> : sort 排序</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.extendFieldList deptId=1 pageSize=10&gt;&lt;#list list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.extendFieldList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/extendFieldList?extendId=1&amp;appToken=接口访问授权Token', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-lock">lock 锁查询指令
<p>参数列表</p>
<ul>
 <li><code>itemType</code>:项目类型</li>
 <li><code>itemId</code>:项目id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>count</code> : locked count
    <p>锁定次数</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
 <li><code>itemIds</code> 多个项目id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.lock id=1&gt;${object.count}&lt;/@sys.lock&gt;</p>
<p>&lt;@sys.lock ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.count}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.lock&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/lock?id=1', function(data){
  console.log(data.count);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-module">sysModule 模块查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:模块id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>url</code> : url
    <p>地址</p></li>
   <li><code>authorizedUrl</code> : authorized url
    <p>授权访问地址</p></li>
   <li><code>attached</code> : attached
    <p>附加信息</p></li>
   <li><code>parentId</code> : parent module id
    <p>父模块id</p></li>
   <li><code>menu</code> : is menu
    <p>是否菜单</p></li>
   <li><code>hasChild</code> : has child
    <p>拥有子模型</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
 <li><code>ids</code>: 多个模块id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@sys.module id='page'&gt;${object.url}&lt;/@sys.module&gt;</p>
<p>&lt;@sys.module ids='page,develop'&gt;&lt;#list map as k,v&gt;${k}:${v.url}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.module&gt;</p>
<pre>&lt;script&gt;
$.getJSON('//sys.publicsys.com/api/directive/sys/module?id=page&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.url);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-moduleLang">sysModuleLang 模块语言查询指令
<p>参数列表</p>
<ul>
 <li><code>moduleId</code>:模块id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>url</code> : url
    <p>地址</p></li>
   <li><code>authorizedUrl</code> : authorized url
    <p>授权访问地址</p></li>
   <li><code>attached</code> : attached
    <p>附加信息</p></li>
   <li><code>parentId</code> : parent module id
    <p>父模块id</p></li>
   <li><code>menu</code> : is menu
    <p>是否菜单</p></li>
   <li><code>hasChild</code> : has child
    <p>拥有子模型</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
 <li><code>lang</code>:语言【zh:中文,en:英语,ja:日语】</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.moduleLang moduleId='page' lang='zh'&gt;${object}&lt;/@sys.moduleLang&gt;</p>
<pre>&lt;script&gt;
$.getJSON('//sys.publicsys.com/api/directive/sys/moduleLang?moduleId=page&amp;lang=zh', function(data){
 console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-moduleList">sysModuleList 模块列表查询指令
<p>参数列表</p>
<ul>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>menu</code>:高级选项:是否菜单,【true,false】</li>
 <li><code>parentId</code>:父模块id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>url</code> : url
    <p>地址</p></li>
   <li><code>authorizedUrl</code> : authorized url
    <p>授权访问地址</p></li>
   <li><code>attached</code> : attached
    <p>附加信息</p></li>
   <li><code>parentId</code> : parent module id
    <p>父模块id</p></li>
   <li><code>menu</code> : is menu
    <p>是否菜单</p></li>
   <li><code>hasChild</code> : has child
    <p>拥有子模型</p></li>
   <li><code>sort</code> : sort
    <p>排序</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.moduleList parentId='page' pageSize=10&gt;&lt;#list page.list as a&gt;${springMacroRequestContext.getMessage('menu.'+a.id)}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.moduleList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/moduleList?parentId=page&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-record">sysRecord 自定义记录查询写入指令
<p>参数列表</p>
<ul>
 <li><code>code</code>:记录编码,结果返回<code>object</code></li>
 <li><code>data</code>:记录数据,不为空时记录该数据
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>data</code> : record data 记录数据</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>updateDate</code> : update date 更新日期</li>
  </ul></li>
 <li><code>codes</code>:多个记录编码,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.record code='site' data='data'&gt;${object.data}&lt;/@sys.record&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/record?code=site&amp;data=data&amp;appToken=接口访问授权Token', function(data){
 console.log(data.data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-recordList">sysRecordList 自定义记录列表查询指令
<p>参数列表</p>
<ul>
 <li><code>code</code>:编码</li>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,高级选项禁用时不能超过现在,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderField</code>:排序字段,【updateDate:更新日期】默认创建日期倒序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>data</code> : record data 记录数据</li>
   <li><code>createDate</code> : create date 创建日期</li>
   <li><code>updateDate</code> : update date 更新日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.recordList&gt;&lt;#list list as a&gt;${a.data}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.recordList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/recordList?appToken=接口访问授权Token', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-role">sysRole 角色查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:角色id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>ownsAllRight</code> : owns all right
    <p>拥有全部功能权限</p></li>
   <li><code>showAllModule</code> : show all modules
    <p>显示全部模块</p></li>
  </ul></li>
 <li><code>ids</code>: 多个角色id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@sys.role id=1&gt;${object.name}&lt;/@sys.role&gt;</p>
<p>&lt;@sys.role ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.role&gt;</p>
<pre>&lt;script&gt;
$.getJSON('//sys.publicsys.com/api/directive/sys/role?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-roleList">sysRoleList 角色列表查询指令
<p>参数列表</p>
<ul>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>ownsAllRight</code> : owns all right
    <p>拥有全部功能权限</p></li>
   <li><code>showAllModule</code> : show all modules
    <p>显示全部模块</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.roleList deptId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.roleList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/roleList?deptId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-roleModule">sysRoleModule 角色模块授权查询指令
<p>参数列表</p>
<ul>
 <li><code>roleIds</code>:多个角色id</li>
 <li><code>moduleId</code> 模块id,roleIds、moduleId都存在时,结果返回<code>true</code>或<code>false</code>,表示这些角色是否拥有该模块的数据权限</li>
 <li><code>moduleIds</code> 多个模块id,当roleIds存在,且moduleId为空时生效,结果返回<code>map</code>(模块id,<code>true</code>或<code>false</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.roleModule roleIds='1,2,3' modelId='page'&gt;${object}&lt;/@sys.roleModule&gt;</p>
<p>&lt;@sys.roleModule roleIds='1,2,3' modelIds='page,content'&gt;&lt;#list map as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.roleModule&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/roleModule?roleIds=1,2,3&amp;modelId=page&amp;appToken=接口访问授权Token', function(data){
  console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-roleModuleList">sysRoleModuleList 角色模块映射列表查询指令
<p>参数列表</p>
<ul>
 <li><code>roleId</code>:角色id</li>
 <li><code>moduleId</code>:模块id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.roleModuleList roleId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.id.roleId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.roleModuleList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/sysDeptCategoryList?roleId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-roleUserList">sysRoleUserList 角色用户列表查询指令
<p>参数列表</p>
<ul>
 <li><code>roleId</code>:角色id</li>
 <li><code>userId</code>:用户id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.roleUserList roleId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.id.roleId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.roleUserList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/roleUserList?roleId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-site">sysSite 站点查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:站点id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>parentId</code> : parent site id
    <p>父站点id</p></li>
   <li><code>directory</code> : directory
    <p>目录</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>useStatic</code> : use static
    <p>启用静态化</p></li>
   <li><code>sitePath</code> : site url
    <p>静态站点地址</p></li>
   <li><code>useSsi</code> : use SSI
    <p>启用服务器端包含</p></li>
   <li><code>dynamicPath</code> : dynamic site url
    <p>动态站点地址</p></li>
   <li><code>hasChild</code> : has child site
    <p>拥有子站点</p></li>
   <li><code>multiple</code> : multiple site
    <p>站群</p></li>
  </ul></li>
 <li><code>ids</code>: 多个站点id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@sys.site id=1&gt;${object.name}&lt;/@sys.site&gt;</p>
<p>&lt;@sys.site ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.site&gt;</p>
<pre>&lt;script&gt;
$.getJSON('//sys.publicsys.com/api/directive/sys/site?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-siteList">sysSiteList 站点列表查询指令
<p>参数列表</p>
<ul>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>disabled</code>:高级选项:已禁用,【true,false】</li>
 <li><code>parentId</code>:父站点id</li>
 <li><code>name</code>:名称</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>parentId</code> : parent site id
    <p>父站点id</p></li>
   <li><code>directory</code> : directory
    <p>目录</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>useStatic</code> : use static
    <p>启用静态化</p></li>
   <li><code>sitePath</code> : site url
    <p>静态站点地址</p></li>
   <li><code>useSsi</code> : use SSI
    <p>启用服务器端包含</p></li>
   <li><code>dynamicPath</code> : dynamic site url
    <p>动态站点地址</p></li>
   <li><code>hasChild</code> : has child site
    <p>拥有子站点</p></li>
   <li><code>multiple</code> : multiple site
    <p>站群</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.siteList pageSize=10&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.siteList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/siteList?pageSize=10&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-task">sysTask 任务计划查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:任务计划id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 名称</li>
   <li><code>status</code> : status(0:ready,1:running,2:paused,3:error) 状态(0:就绪,1:执行中,2:暂停,3:错误)</li>
   <li><code>multiNode</code> : multi-node execution 多节点运行</li>
   <li><code>cronExpression</code> : cron expression 计划表达式</li>
   <li><code>description</code> : description 描述</li>
   <li><code>filepath</code> : file path 文件路径</li>
   <li><code>updateDate</code> : update date 更新日期</li>
  </ul></li>
 <li><code>ids</code>: 多个任务计划id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.task id=1&gt;${object.name}&lt;/@sys.task&gt;</p>
<p>&lt;@sys.task ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.task&gt;</p>
<pre>&lt;script&gt;
$.getJSON('//sys.publicsys.com/api/directive/sys/task?id=1&amp;appToken=接口访问授权Token', function(data){
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-taskList">sysTaskList 任务计划列表查询指令
<p>参数列表</p>
<ul>
 <li><code>status</code>:状态【0:就绪,1:执行中,2:暂停,3:错误】</li>
 <li><code>startUpdateDate</code>:起始更新日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 名称</li>
   <li><code>status</code> : status(0:ready,1:running,2:paused,3:error) 状态(0:就绪,1:执行中,2:暂停,3:错误)</li>
   <li><code>multiNode</code> : multi-node execution 多节点运行</li>
   <li><code>cronExpression</code> : cron expression 计划表达式</li>
   <li><code>description</code> : description 描述</li>
   <li><code>filepath</code> : file path 文件路径</li>
   <li><code>updateDate</code> : update date 更新日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.taskList deptId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.id.deptId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.taskList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/taskList?deptId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-user">sysUser 用户查询指令
<p>参数列表</p>
<ul>
 <li><code>replaceSensitive</code>:替换敏感词, 默认为<code>true</code></li>
 <li><code>id</code>:用户id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 用户名</li>
   <li><code>weakPassword</code> : weak password 弱密码</li>
   <li><code>nickname</code> : nickname 昵称</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>deptId</code> : dept id 部门id</li>
   <li><code>contentPermissions</code> : content permissions(0:self,1:all,2:dept) 内容权限(0:自己的,1:全部,2:本部门)</li>
   <li><code>roles</code> : role ids 角色id</li>
   <li><code>email</code> : email 邮件地址</li>
   <li><code>emailChecked</code> : email checked 已验证邮件</li>
   <li><code>superuser</code> : super user 管理员</li>
   <li><code>disabled</code> : disabled 已禁用p</li>
   <li><code>lastLoginDate</code> : last login date 上次登录日期</li>
   <li><code>lastLoginIp</code> : last login ip 上次登录ip</li>
   <li><code>loginCount</code> : login count 登录次数</li>
   <li><code>registeredDate</code> : register date 注册日期</li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
 <li><code>ids</code>: 多个用户id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
 <li><code>absoluteURL</code>:cover处理为绝对路径 默认为<code> true</code></li>
</ul>
使用示例
<p>&lt;@sys.user id=1&gt;${object.name}&lt;/@sys.user&gt;</p>
<p>&lt;@sys.user ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.user&gt;</p>
<pre>&lt;script&gt;
$.getJSON('//sys.publicsys.com/api/directive/sys/user?id=1&amp;appToken=接口访问授权Token', function(data){    
  console.log(data.name);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-userList">sysUserList 用户列表查询指令
<p>参数列表</p>
<ul>
 <li><code>advanced</code>:开启高级选项, 默认为<code>false</code></li>
 <li><code>replaceSensitive</code>:替换敏感词, 默认为<code>true</code></li>
 <li><code>disabled</code>:高级选项:已禁用,【true,false】, 默认为<code>false</code></li>
 <li><code>deptId</code>:部门id</li>
 <li><code>startRegisteredDate</code>:起始注册日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endRegisteredDate</code>:终止注册日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>startLastLoginDate</code>:起始上次登录日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endLastLoginDate</code>:终止上次登录日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>superuser</code>:管理员,【true,false】</li>
 <li><code>emailChecked</code>:邮箱已验证,【true,false】</li>
 <li><code>name</code>:昵称、用户名、邮箱</li>
 <li><code>orderField</code> 排序字段,【lastLoginDate:上次登录日期,loginCount:登录次数,registeredDate:注册日期,followers:粉丝数】,默认创建日期按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>name</code> : name 用户名</li>
   <li><code>weakPassword</code> : weak password 弱密码</li>
   <li><code>nickname</code> : nickname 昵称</li>
   <li><code>cover</code> : cover 封面图</li>
   <li><code>deptId</code> : dept id 部门id</li>
   <li><code>contentPermissions</code> : content permissions(0:self,1:all,2:dept) 内容权限(0:自己的,1:全部,2:本部门)</li>
   <li><code>roles</code> : role ids 角色id</li>
   <li><code>email</code> : email 邮件地址</li>
   <li><code>emailChecked</code> : email checked 已验证邮件</li>
   <li><code>superuser</code> : super user 管理员</li>
   <li><code>disabled</code> : disabled 已禁用p</li>
   <li><code>lastLoginDate</code> : last login date 上次登录日期</li>
   <li><code>lastLoginIp</code> : last login ip 上次登录ip</li>
   <li><code>loginCount</code> : login count 登录次数</li>
   <li><code>registeredDate</code> : register date 注册日期</li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.userList deptId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.nickname}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.userList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/userList?deptId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-userSetting">sysUserSetting 配置数据查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户ID</li>
 <li><code>code</code>:配置编码,userId不为空时结果返回<code>string</code></li>
 <li><code>data</code>:配置数据，配置编码、userId不为空时结果返回<code>string</code></li>
 <li><code>codes</code>:多个配置编码,userId不为空时结果返回<code>map</code>(code,<code>string</code>)</li>
 <li><code>userIds</code>:多个用户ID,code不为空时,结果返回<code>map</code>(userId,<code>string</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.UserSetting userId=1 code='home_title'&gt;${object}&lt;/@sys.UserSetting&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/sys/UserSetting?uscode=site&amp;appToken=接口访问授权Token', function(data){
 console.log(data.register_url);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-userTokenList">sysUserTokenList 用户登录授权列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code>:用户id</li>
 <li><code>channel</code>:渠道</li>
 <li><code>orderField</code>:排序字段,【expiryDate:过期日期,createDate:创建日期,】,默认创建日期按orderType排序</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>authToken</code> : auth token
    <p>授权码</p></li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>channel</code> : channel
    <p>渠道</p></li>
   <li><code>createDate</code> : create date
    <p>授权日期</p></li>
   <li><code>expiryDate</code> : expiry date
    <p>过期日期</p></li>
   <li><code>loginIp</code> : login ip
    <p>登录ip</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.userTokenList userId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.id.deptId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.userTokenList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/sys/userTokenList?pageSize=10&amp;authToken=用户登录Token&amp;authUserId=用户id', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="sys-workflow">SysWorkflowDirective</div>
        <div class="block" data-id="sys-workflowList">SysWorkflowListDirective</div>
        <div class="block" data-id="sys-workflowProcess">SysWorkflowProcessDirective</div>
        <div class="block" data-id="sys-workflowProcessHistoryList">SysWorkflowProcessHistoryListDirective</div>
        <div class="block" data-id="sys-workflowProcessItem">SysWorkflowProcessDirective</div>
        <div class="block" data-id="sys-workflowProcessList">SysWorkflowProcessListDirective</div>
        <div class="block" data-id="sys-workflowStep">SysWorkflowStepDirective</div>
        <div class="block" data-id="sys-workflowStepList">sysWorkflowStepListDirective
<p>流程步骤列表查询指令</p>
<p>参数列表</p>
<ul>
 <li><code>workflowId</code>:流程id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>required</code> : required 必填</li>
   <li><code>searchable</code> : searchable 可搜索</li>
   <li><code>sortable</code> : sortable field 排序字段</li>
   <li><code>maxlength</code> : max length 最大长度</li>
   <li><code>width</code> : image width 图片宽度</li>
   <li><code>height</code> : image height 图片高度</li>
   <li><code>name</code> : name 名称</li>
   <li><code>description</code> : description 描述</li>
   <li><code>inputType</code> : input type 表单类型</li>
   <li><code>defaultValue</code> : default value 默认值</li>
   <li><code>dictionaryId</code> : dictionary id 数据字典</li>
   <li><code>multiple</code> : multiple 多选</li>
   <li><code>sort</code> : sort 排序</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@sys.extendFieldList deptId=1 pageSize=10&gt;&lt;#list list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@sys.extendFieldList&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/sys/workflowStepList?workflowId=1', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="task-clearLog">clearLog 日志清理指令
<p>参数列表</p>
<ul>
 <li><code>clearDate</code>:起始发布日期,【2020-01-01 23:59:59】,【2020-01-01】,默认3个月前</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>map类型</li>
 <li><code>result.loginLog</code>:登录日志删除数量</li>
 <li><code>result.operateLog</code>:操作日志删除数量</li>
 <li><code>result.taskLog</code>:任务计划日志删除数量</li>
</ul>
<p>使用示例</p>
<p>&lt;@task.clearLog&gt;&lt;#list result as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@task.clearLog&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/task/clearLog?appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="task-indexContent">indexContent 重建内容索引指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:内容id,ids为空时有效</li>
 <li><code>ids</code>:多个内容id</li>
</ul>
<p>使用示例</p>
<p>&lt;@task.indexContent id=1&gt;&lt;&lt;/@task.indexContent&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/task/indexContent?id=1&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="task-publishCategory">publishCategory 发布分类静态页面指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:分类id</li>
 <li><code>ids</code>:多个分类id</li>
 <li><code>pageIndex</code>:当前页码,默认值1</li>
 <li><code>totalPage</code>:最大页码,为空时则只生成当前页</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>map</code>map类型,键值内容id,值为生成结果</li>
</ul>
<p>使用示例</p>
<p>&lt;@task.publishCategory id=1&gt;&lt;#list map as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@task.publishCategory&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/task/publishCategory?id=1&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="task-publishContent">publishContent 发布分类静态页面指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:内容id</li>
 <li><code>ids</code>:多个内容id,id为空时有效</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>map</code>map类型,键值内容id,值为生成结果</li>
</ul>
<p>使用示例</p>
<p>&lt;@task.publishContent id=1&gt;&lt;#list map as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@task.publishContent&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/task/publishContent?id=1&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="task-publishPage">publishPage 页面静态化指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:页面路径,默认值"/"</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>map</code>map类型,键值页面路径,值为生成结果</li>
</ul>
<p>使用示例</p>
<p>&lt;@task.publishPage&gt;&lt;#list map as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@task.publishPage&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/task/publishPage?path=&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="task-publishPlace">publishPlace 页面片段静态化指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:页面路径,默认值"/"</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>map</code>map类型,键值页面路径,值为生成结果</li>
</ul>
<p>使用示例</p>
<p>&lt;@task.publishPlace&gt;&lt;#list map as k,v&gt;${k}:${v}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@task.publishPlace&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/task/publishPlace?path=&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-createCategoryFile">createCategoryFile 创建分类静态文件指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:分类id</li>
 <li><code>templatePath</code>:模板路径</li>
 <li><code>filePath</code>:静态文件路径</li>
 <li><code>pageIndex</code>:当前页码,默认为1</li>
 <li><code>totalPage</code>:最大页码,为空时则只生成当前页</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>url</code>:静态文件路径</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.createCategoryFile id=1 templatePath='category.html' filePath='category/'+1+'.html'&gt;${url}&lt;/@tools.createCategoryFile&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/createCategoryFile?id=1&amp;templatePath=category.html&amp;filePath=category/1.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-createContentFile">createContentFile 创建内容静态文件指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:内容id</li>
 <li><code>templatePath</code>:模板路径</li>
 <li><code>filePath</code>:静态文件路径</li>
 <li><code>pageIndex</code>:当前页码,默认为1</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>url</code>:静态文件路径</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.createContentFile id=1 templatePath='content.html' filePath='content/'+1+'.html'&gt;${url}&lt;/@tools.createContentFile&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/tools/createContentFile?id=1&amp;templatePath=content.html&amp;filePath=content/1.html&amp;appToken=接口访问授权Token', function(data){
  console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-createLock">createLock 创建锁指令
<p>参数列表</p>
<ul>
 <li><code>itemType</code>:锁定项目类型</li>
 <li><code>itemId</code>:锁定项目id</li>
 <li><code>userId</code>:锁定用户id</li>
 <li><code>counter</code>:计数,默认值<code>0</code>:</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>count</code> : locked count
    <p>锁定次数</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.createLock itemType='content' itemId='1' userId='1'&gt;${url}&lt;/@tools.createLock&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/tools/createLock?itemType=content&amp;itemId=1&amp;userId=1&amp;appToken=接口访问授权Token', function(data){
  console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-createTemplateFile">createTemplateFile 创建静态文件指令
<p>参数列表</p>
<ul>
 <li><code>templatePath</code>:模板路径</li>
 <li><code>filePath</code>:静态文件路径</li>
 <li><code>pageIndex</code>:当前页码,默认为1</li>
 <li><code>parameters</code>:参数map</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>url</code>:静态文件路径</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.createTemplateFile templatePath='template.html' filePath='page/'+1+'.html' parameters={"parameter1","value1"}&gt;${url}&lt;/@tools.createTemplateFile&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/tools/createTemplateFile?id=1&amp;templatePath=template.html&amp;filePath=page/1.html&amp;parameters.parameter1=value1&amp;appToken=接口访问授权Token', function(data){
  console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-csrfToken">csrfToken 防跨站请求伪造token指令
<p>参数列表</p>
<ul>
 <li><code>admin</code>:是否后台,默认值<code>false</code>:</li>
</ul>
<p>返回结果</p>
<ul>
 <li>打印token值</li>
</ul>
<p>使用示例</p>
<p>&lt;input type="hidden" name="_csrf" value="&lt;@tools.csrfToken/&gt;"/&gt;</p></div>
        <div class="block" data-id="tools-disk">disk 磁盘空间与路径指令
<p>返回结果</p>
<ul>
 <li><code>freeSpace</code>:空白空间</li>
 <li><code>totalSpace</code>:总空间</li>
 <li><code>usableSpace</code>:可用空间</li>
 <li><code>rootPath</code>:绝对路径</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.disk&gt;${freeSpace}&lt;/@tools.disk&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/tools/disk?appToken=接口访问授权Token', function(data){
 console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-diyMetadata">diyMetadata diy元数据获取指令
<p>参数列表</p>
<ul>
 <li><code>itemType</code>:元数据类型,【region,layout,module】</li>
 <li><code>itemId</code>:元数据id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>:diy元数据<code>region</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>categoryType</code> : category type
    <p>分类类型</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
  </ul>
  ,<code>layout</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>region</code> : region
    <p>区域</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>template</code> : template
    <p>模板</p></li>
   <li><code>style</code> : style
    <p>样式</p></li>
  </ul>
  ,<code>module</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>region</code> : region
    <p>区域</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>clone</code> : clone
    <p>复制</p></li>
   <li><code>cover</code> : cover
    <p>封面图</p></li>
   <li><code>place</code> : place path
    <p>页面片段</p></li>
   <li><code>fragment</code> : fragment path
    <p>模板片段</p></li>
   <li><code>filePath</code> : file path
    <p>文件路径</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.diyMetadata itemType='region' itemId='00000000-0000-0000-0000-000000000000'&gt;${object.name}&lt;/@tools.diyMetadata&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/diyMetadata?itemType=region&amp;itemId=00000000-0000-0000-0000-000000000000&amp;appToken=接口访问授权Token', function(data){
   console.log(data.name);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-diyMetadataList">diyMetadataList diy元数据列表获取指令
<p>参数列表</p>
<ul>
 <li><code>itemType</code>:元数据类型,【region,layout,module】</li>
 <li><code>region</code>:区域id,当itemType为layout或module时有效</li>
 <li><code>showGlobal</code>:元数据类型,【true,false】,当itemType为layout或module时有效,默认为<code>true</code>:</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>: diy元数据列表<code>region</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>categoryType</code> : category type
    <p>分类类型</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
  </ul>
  ,<code>layout</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>region</code> : region
    <p>区域</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>template</code> : template
    <p>模板</p></li>
   <li><code>style</code> : style
    <p>样式</p></li>
  </ul>
  ,<code>module</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>region</code> : region
    <p>区域</p></li>
   <li><code>name</code> : name
    <p>名称</p></li>
   <li><code>clone</code> : clone
    <p>复制</p></li>
   <li><code>cover</code> : cover
    <p>封面图</p></li>
   <li><code>place</code> : place path
    <p>页面片段</p></li>
   <li><code>fragment</code> : fragment path
    <p>模板片段</p></li>
   <li><code>filePath</code> : file path
    <p>文件路径</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.diyMetadataList itemType='region'&gt;&lt;#list page.list as a&gt;${a.name}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.diyMetadataList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/diyMetadataList?itemType=region&amp;appToken=接口访问授权Token', function(data){
   console.log(data.name);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-diyRegionData">regionData diy区域数据获取指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:区域id</li>
 <li><code>categoryId</code>:分类id</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>:
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>layoutList</code> : layout data list
    <p>布局列表</p></li>
   <li><code>categoryLayoutMap</code> : layout data list map
    <p>布局数据列表哈希表</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.diyMetadata id='00000000-0000-0000-0000-000000000000'&gt;${object.id}&lt;/@tools.diyMetadata&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/regionData?itemId=00000000-0000-0000-0000-000000000000&amp;appToken=接口访问授权Token', function(data){
   console.log(data.id);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-exception">exception 异常获取指令
<p>返回结果</p>
<ul>
 <li><code>object</code>:异常字符串</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.exception&gt;${object}&lt;/@tools.exception&gt;</p></div>
        <div class="block" data-id="tools-executeScript">executeScript 脚本执行指令
<p>参数列表</p>
<ul>
 <li><code>command</code>:命令【sync.bat,sync.sh,backupDB.bat,backupDB.sh】</li>
 <li><code>parameters</code>:参数数组</li>
</ul>
<p>打印执行结果</p>
<p>使用示例</p>
<p>&lt;@tools.executeScript command='backupdb.bat'/&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/executeScript?command=backupdb.bat&amp;appToken=接口访问授权Token', function(data){
   console.log(data.id);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-fileBackupContent">fileBackupContent 备份文件内容获取指令
<p>参数列表</p>
<ul>
 <li><code>type</code>:文件类型【file,task,template】,默认template</li>
 <li><code>path</code>:文件路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>:文件内容文本</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.fileBackupContent type='file' path='index.html'&gt;${object}&lt;/@tools.fileBackupContent&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/fileBackupContent?type=file&amp;path=index.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-fileBackupList">fileBackupList 文件回收站列表获取指令
<p>参数列表</p>
<ul>
 <li><code>type</code>:文件类型【file,task,template】,默认template</li>
 <li><code>path</code>:文件路径</li>
 <li><code>orderField</code>: 排序类型【fileName,fileSize,modifiedDate,createDate】,默认fileName</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:文件列表</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.fileBackupList path='/'&gt;&lt;#list list as a&gt;${a.fileName}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.fileBackupList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/fileBackupList?path=/&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-fileContent">fileContent 文件内容获取指令
<p>参数列表</p>
<ul>
 <li><code>type</code>:文件类型【file,task,template】,默认template</li>
 <li><code>path</code>:文件路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>:文件内容文本</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.fileContent path='index.html'&gt;${object}&lt;/@tools.fileContent&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/fileContent?path=index.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-fileExist">fileExists 文件是否存在指令
<p>参数列表</p>
<ul>
 <li><code>type</code>:文件类型【file,task,template】,默认template</li>
 <li><code>path</code>:文件路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>:boolean类型文件是否存在</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.fileExists type='file' path='/'&gt;&lt;#list list as a&gt;${a}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.fileExists&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/fileExists?type=file&amp;path=/&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-fileHistoryContent">fileHistoryContent 文件修改历史内容获取指令
<p>参数列表</p>
<ul>
 <li><code>type</code>:文件类型【file,task,template】,默认template</li>
 <li><code>path</code>:文件路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>:文件内容文本</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.fileHistoryContent type='file' path='index.html/2020-01-01_01-01-000000'&gt;${object}&lt;/@tools.fileHistoryContent&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/fileHistoryContent?type=file&amp;path=index.html/2020-01-01_01-01-000000&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-fileHistoryList">fileHistoryList 文件修改历史列表获取指令
<p>参数列表</p>
<ul>
 <li><code>type</code>:文件类型【file,task,template】,默认template</li>
 <li><code>path</code>:文件路径</li>
 <li><code>orderField</code>: 排序类型【fileName,fileSize,modifiedDate,createDate】,默认fileName</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:文件列表</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.fileHistoryList path='/'&gt;&lt;#list list as a&gt;${a.fileName}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.fileHistoryList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/fileHistoryList?path=/&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-fileList">fileList 文件列表获取指令
<p>参数列表</p>
<ul>
 <li><code>type</code>:文件类型【file,task,template】,默认template</li>
 <li><code>path</code>:文件路径</li>
 <li><code>orderField</code>: 排序类型【fileName,fileSize,modifiedDate,createDate】,默认fileName</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:文件列表</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.fileList path='/'&gt;&lt;#list list as a&gt;${a.fileName}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.fileList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/fileList?path=/&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-includeLayout">includeLayout 包含diy布局指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:布局id</li>
</ul>
<p>打印包含结果</p>
<p>使用示例</p>
<p>&lt;@tools.includeLayout id='00000000-0000-0000-0000-000000000000'&gt;${index},&lt;/@tools.includeLayout&gt;</p></div>
        <div class="block" data-id="tools-includePlace">includePlace 包含页面片段指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:路径</li>
</ul>
<p>打印包含结果</p>
<p>使用示例</p>
<p>&lt;@tools.includePlace path='00000000-0000-0000-0000-000000000000'/&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/includePlace?path=00000000-0000-0000-0000-000000000000.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-includeRegion">includeRegion 包含diy区域指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:布局id</li>
</ul>
<p>打印包含结果</p>
<p>使用示例</p>
<p>&lt;@tools.includeRegion id='00000000-0000-0000-0000-000000000000' categoryId=1/&gt;</p></div>
        <div class="block" data-id="tools-licenseVerify">licenseVerify 授权文件验证指令
<p>参数列表</p>
<ul>
 <li><code>licenseData</code>:授权文件数据</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:验证结果,【true:验证成功,false:验证失败】</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.licenseVerify licenseData='content'&gt;${url}&lt;/@tools.licenseVerify&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/tools/licenseVerify?licenseData=content', function(data){
 console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-masterSite">masterSite 管理站点判断指令
<p>使用示例</p>
<p>&lt;@tools.masterSite&gt;this is a master site&lt;/@tools.masterSite&gt;</p></div>
        <div class="block" data-id="tools-memory">memory 内存监控指令
<p>返回结果</p>
<ul>
 <li><code>freeMemory</code>:空闲内存</li>
 <li><code>totalMemory</code>:总内存</li>
 <li><code>maxMemory</code>:最大内存</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.memory&gt;${totalMemory}&lt;/@tools.memory&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/tools/memory?appToken=接口访问授权Token', function(data){
 console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-metadata">metadata 模板元数据获取指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:模板路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>: 元数据
  <ul style="padding-left:20px;">
   <li><code>alias</code> : alias
    <p>别名</p></li>
   <li><code>publishPath</code> : static file path
    <p>静态文件路径</p></li>
   <li><code>useDynamic</code> : allow dynamic access
    <p>允许动态访问</p></li>
   <li><code>needLogin</code> : need login
    <p>需要登录</p></li>
   <li><code>needBody</code> : need body field
    <p>需要消息体</p></li>
   <li><code>acceptParameters</code> : accept parameters
    <p>可接受参数名</p></li>
   <li><code>cacheTime</code> : cache time
    <p>缓存时间</p></li>
   <li><code>contentType</code> : content type
    <p>内存类型</p></li>
   <li><code>extendList</code> : extend field list
    <p>扩展字段列表</p></li>
   <li><code>parameterTypeMap</code> : parameter type map
    <p>参数类型表</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.metadata path='index.html'&gt;${object.alias}&lt;/@tools.metadata&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/metadata?path=index.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data.alias);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-placeMetadata">placeMetadata 页面片段元数据获取指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:模板路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object</code>: 元数据
  <ul style="padding-left:20px;">
   <li><code>alias</code> : alias
    <p>别名</p></li>
   <li><code>size</code> : data size
    <p>数据条数</p></li>
   <li><code>adminIds</code> : front administrator ids
    <p>前台管理员ids</p></li>
   <li><code>allowContribute</code> : allow contribute
    <p>允许投稿</p></li>
   <li><code>allowAnonymous</code> : allow anonymous contribute
    <p>允许匿名投稿</p></li>
   <li><code>coverWidth</code> : cover width
    <p>封面图宽度</p></li>
   <li><code>coverHeight</code> : cover height
    <p>封面图高度</p></li>
   <li><code>workflowId</code> : workflow
    <p>流程</p></li>
   <li><code>acceptItemTypes</code> : accept item types
    <p>可以接受项目类型</p></li>
   <li><code>fieldList</code> : system field list
    <p>系统字段列表</p></li>
   <li><code>requiredFieldList</code> : required field list
    <p>必填字段列表</p></li>
   <li><code>fieldTextMap</code> : field text map
    <p>字段文本哈希表</p></li>
   <li><code>extendList</code> : extend field list
    <p>扩展字段列表</p></li>
   <li><code>metadataExtendList</code> : metadata extend field list
    <p>元数据扩展字段列表</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.placeMetadata path='00000000-0000-0000-0000-000000000000'&gt;${object.alias}&lt;/@tools.placeMetadata&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/placeMetadata?path=00000000-0000-0000-0000-000000000000.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data.alias);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-sendEmail">sendEmail 发送邮件指令
<p>参数列表</p>
<ul>
 <li><code>email</code>:多个邮件地址</li>
 <li><code>cc</code>:多个抄送地址</li>
 <li><code>bcc</code>:多个密送地址</li>
 <li><code>title</code>:标题</li>
 <li><code>templatePath</code>:内容模板路径</li>
 <li><code>content</code>:邮件内容,templatePath为空时有效</li>
 <li><code>fileNames</code>:多个附件名称</li>
 <li><code>filePaths</code>:多个文件路径</li>
 <li><code>parameters</code>:参数map</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>result</code>:是否允许发送,【true,false】</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.sendEmail email='master@puliccms.com' title='title' content='content' parameters={"parameter1":"value1"}/&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/sendEmail?email=master@puliccms.com&amp;title=title&amp;content=content&amp;parameters.parameter1=value1&amp;appToken=接口访问授权Token', function(data){
   console.log(data.alias);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-systemProperties">systemProperties 服务器参数指令
<p>返回结果</p>
<ul>
 <li><code>java.version</code>:Java version number</li>
 <li><code>java.vendor</code>:Java vendor specific string</li>
 <li><code>java.vendor.url</code>:Java vendor URL</li>
 <li><code>java.home</code>:Java installation directory</li>
 <li><code>java.class.version</code>:Java class version number</li>
 <li><code>java.class.path</code>:Java classpath</li>
 <li><code>os.name</code>:Operating System Name</li>
 <li><code>os.arch</code>:Operating System Architecture</li>
 <li><code>os.version</code>:Operating System Version</li>
 <li><code>file.separator</code>:File separator (SEPARATOR on Unix)</li>
 <li><code>path.separator</code>:Path separator (":" on Unix)</li>
 <li><code>line.separator</code>:Line separator ("\n" on Unix)</li>
 <li><code>user.name</code>:User account name</li>
 <li><code>user.home</code>:User home directory</li>
 <li><code>user.dir</code>:User's current working directory</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.systemProperties&gt;${.vars['java.version']}&lt;/@tools.systemProperties&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/systemProperties?appToken=接口访问授权Token', function(data){
   console.log(data['java.version']);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-templatePlaceList">templatePlaceList 模板文件页面片段列表获取指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:文件路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:文件路径列表</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.templatePlaceList path='index.html'&gt;&lt;#list list as a&gt;${a}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.templatePlaceList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/templatePlaceList?path=index.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-templateRegionList">templateRegionList 模板文件页面可视化区域列表指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:文件路径</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:可视化区域id列表</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.templateRegionList path='index.html'&gt;&lt;#list list as a&gt;${a}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.templateRegionList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/templateRegionList?path=index.html&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-templateResult">templateResult 模板渲染结果指令
<p>参数列表</p>
<ul>
 <li><code>parameters</code>:参数map</li>
 <li><code>templateContent</code>:模板内容</li>
</ul>
打印渲染结果
<p>使用示例</p>
<p>&lt;@tools.templateResult templateContent='${name}' parameters={'name':'value'}/&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/templateResult?path=$%7Bname%7D&amp;parameters.name=value&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-templateSearchList">templateSearchList 模板文件搜索列表指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:文件路径</li>
 <li><code>word</code>:搜索词</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>list</code>:文件列表</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.templateSearchList path='/' word='script'&gt;&lt;#list list as a&gt;${a.path}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@tools.templateSearchList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/templateSearchList?path=/&amp;word=script&amp;appToken=接口访问授权Token', function(data){
   console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-thumb">thumb 缩略图指令
<p>参数列表</p>
<ul>
 <li><code>path</code>:文件路径</li>
 <li><code>width</code>:宽度</li>
 <li><code>height</code>:高度</li>
</ul>
<p>打印结果文件路径</p>
<p>使用示例</p>
<p>&lt;@tools.thumb path='images/logo.jpg' width=100 height=100/&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/thumb?path=images/logo.jpg&amp;width=100&amp;height=100&amp;appToken=接口访问授权Token', function(data){
   console.log(data.deviceType);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-userAgent">userAgent user agent分析指令
<p>参数列表</p>
<ul>
 <li><code>userAgent</code>:user agent,为空时取当前请求的user agent</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>object.ip</code>:客户端ip</li>
 <li><code>object.browser</code>:浏览器</li>
 <li><code>object.browserType</code>:浏览器类型</li>
 <li><code>object.browserVersion</code>:浏览器版本</li>
 <li><code>object.operatingSystem</code>:操作系统</li>
 <li><code>object.operatingSystemVersion</code>:操作系统版本</li>
 <li><code>object.deviceType</code>:设备类型</li>
 <li><code>object.userAgent</code>:user agent</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.userAgent&gt;${a.deviceType}&lt;/@tools.userAgent&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/userAgent', function(data){
   console.log(data.deviceType);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="tools-version">version 版本指令
<p>返回结果</p>
<ul>
 <li><code>cms</code>:cms版本</li>
 <li><code>revision</code>:修订版</li>
 <li><code>authorizationEdition</code>:使用授权</li>
 <li><code>authorizationStartDate</code>:授权起始日期</li>
 <li><code>authorizationEndDate</code>:授权结束日期</li>
 <li><code>authorizationOrganization</code>:授权单位</li>
 <li><code>cluster</code>:节点id</li>
 <li><code>master</code>:是否管理节点【true:管理节点,false:普通节点】</li>
</ul>
<p>使用示例</p>
<p>&lt;@tools.version path='/'&gt;${a.fileName}&lt;/@tools.version&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/tools/version', function(data){
   console.log(data.cms);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-account">tradeAccount 账户查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 账户id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
 <li><code>ids</code> 多个账户id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.account id=1&gt;${object.amount}&lt;/@trade.account&gt;</p>
<p>&lt;@trade.account ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.account&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/trade/account?id=1&amp;appToken=接口访问授权Token', function(data){    
     console.log(data.amount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-accountHistory">tradeAccountHistory 账户历史查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 账户历史id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>serialNumber</code> : serial number
    <p>流水号</p></li>
   <li><code>accountId</code> : account id
    <p>账户id</p></li>
   <li><code>userId</code> : operate user id
    <p>操作用户id</p></li>
   <li><code>amountChange</code> : amount change
    <p>金额变动</p></li>
   <li><code>amount</code> : abmount
    <p>金额</p></li>
   <li><code>balance</code> : balance
    <p>余额</p></li>
   <li><code>status</code> : status(0:pend,1:pay,2:charge,3:refund)
    <p>状态(0:待处理,1:支付,2:充值,3:退款)</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
  </ul></li>
 <li><code>ids</code> 多个账户历史id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.accountHistory id=1&gt;${object.balance}&lt;/@trade.accountHistory&gt;</p>
<p>&lt;@trade.accountHistory ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.balance}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.accountHistory&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/accountHistory?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.balance);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-accountHistoryList">tradeAccountHistoryList 账户历史列表查询指令
<p>参数列表</p>
<ul>
 <li><code>accountId</code> 账户id</li>
 <li><code>userId</code> 操作用户id</li>
 <li><code>status</code> 状态,【0:预充值,1:消费,2:充值,3:退款】</li>
 <li><code>startCreateDate</code> 起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code> 终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code> 排序类型,【asc:正序,desc:倒叙】,默认为创建日期倒叙</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>serialNumber</code> : serial number
    <p>流水号</p></li>
   <li><code>accountId</code> : account id
    <p>账户id</p></li>
   <li><code>userId</code> : operate user id
    <p>操作用户id</p></li>
   <li><code>amountChange</code> : amount change
    <p>金额变动</p></li>
   <li><code>amount</code> : abmount
    <p>金额</p></li>
   <li><code>balance</code> : balance
    <p>余额</p></li>
   <li><code>status</code> : status(0:pend,1:pay,2:charge,3:refund)
    <p>状态(0:待处理,1:支付,2:充值,3:退款)</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.accountHistoryList pageSize=10&gt;&lt;#list page.list as a&gt;${a.amountChange}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.accountHistoryList&gt;</p>
<pre>  &lt;script&gt;
   $.getJSON('${site.dynamicPath}api/directive/trade/accountHistoryList?authToken=用户登录Token&amp;authUserId=用户id', function(data){    
     console.log(data.page.totalCount);
   });
   &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-accountList">tradeAccountList 账户列表查询指令
<p>参数列表</p>
<ul>
 <li><code>orderField</code> 排序字段,【amount:金额,updateDate:更新日期】,默认置顶id按orderType排序</li>
 <li><code>orderType</code> 排序类型,【asc:正序,desc:倒叙】,默认为倒叙</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.accountList pageSize=10&gt;&lt;#list page.list as a&gt;${a.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.accountList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/trade/accountList?pageSize=10&amp;appToken=接口访问授权Token', function(data){    
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-address">TradeAddressDirective</div>
        <div class="block" data-id="trade-addressList">TradeAddressListDirective</div>
        <div class="block" data-id="trade-gatewayList">gatewayList 支付渠道查询指令
<p>参数列表 返回结果</p>
<ul>
 <li><code>list</code>支付渠道名称列表</li>
</ul>
使用示例
<p>&lt;@oauth.list&gt;&lt;#list list as a&gt;${a}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@oauth.list&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/gatewayList', function(data){
    console.log(data);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-order">tradeOrder 订单查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 订单id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>paymentId</code> : payment id
    <p>支付订单id</p></li>
   <li><code>address</code> : address
    <p>收货地址</p></li>
   <li><code>addressee</code> : addressee
    <p>收件人</p></li>
   <li><code>telephone</code> : telphone
    <p>电话</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>remark</code> : remark
    <p>备注</p></li>
   <li><code>status</code> : status(0:pending,1:invalid,2:paid,3:refunded,4:close)
    <p>状态(0:待处理,1:无效订单,2:已支付,3:已退款,4:已关闭)</p></li>
   <li><code>confirmed</code> : confirmed
    <p>是否确认</p></li>
   <li><code>processed</code> : processed
    <p>是否处理</p></li>
   <li><code>processUserId</code> : process user id
    <p>处理用户id</p></li>
   <li><code>processInfo</code> : process info
    <p>处理信息</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>processDate</code> : process date
    <p>处理日期</p></li>
   <li><code>paymentDate</code> : payment date
    <p>付款日期</p></li>
  </ul></li>
 <li><code>ids</code> 多个订单id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.order id=1&gt;${object.title}&lt;/@trade.order&gt;</p>
<p>&lt;@trade.order ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.order&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/order?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.title);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-orderHistory">tradeOrderHistory 订单历史查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 订单历史id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>orderId</code> : order id
    <p>订单id</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>operate</code> : operate
    <p>操作</p></li>
   <li><code>content</code> : content
    <p>内容</p></li>
  </ul></li>
 <li><code>ids</code> 多个订单历史id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.orderHistory id=1&gt;${object.amount}&lt;/@trade.orderHistory&gt;</p>
<p>&lt;@trade.orderHistory ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.orderHistory&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/orderHistory?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.amount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-orderHistoryList">tradeOrderHistoryList 订单历史列表查询指令
<p>参数列表</p>
<ul>
 <li><code>orderId</code> 订单id</li>
 <li><code>startCreateDate</code> 起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code> 终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code> 排序类型,【asc:正序,desc:倒叙】,默认为创建日期倒叙</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>orderId</code> : order id
    <p>订单id</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>operate</code> : operate
    <p>操作</p></li>
   <li><code>content</code> : content
    <p>内容</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.orderHistoryList orderId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.content}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.orderHistoryList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/trade/orderHistoryList?orderId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){    
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-orderList">tradeOrderList 订单列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code> 用户id</li>
 <li><code>paymentId</code> 付款id</li>
 <li><code>status</code> 状态,【0:待处理,1:无效订单,2:已支付,3:已退款,4:已关闭】</li>
 <li><code>processed</code> 已处理,【true,false】</li>
 <li><code>startCreateDate</code> 起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code> 终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code> 排序类型,【asc:正序,desc:倒叙】,默认为发布日期倒叙</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>title</code> : title
    <p>标题</p></li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>paymentId</code> : payment id
    <p>支付订单id</p></li>
   <li><code>address</code> : address
    <p>收货地址</p></li>
   <li><code>addressee</code> : addressee
    <p>收件人</p></li>
   <li><code>telephone</code> : telphone
    <p>电话</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>remark</code> : remark
    <p>备注</p></li>
   <li><code>status</code> : status(0:pending,1:invalid,2:paid,3:refunded,4:close)
    <p>状态(0:待处理,1:无效订单,2:已支付,3:已退款,4:已关闭)</p></li>
   <li><code>confirmed</code> : confirmed
    <p>是否确认</p></li>
   <li><code>processed</code> : processed
    <p>是否处理</p></li>
   <li><code>processUserId</code> : process user id
    <p>处理用户id</p></li>
   <li><code>processInfo</code> : process info
    <p>处理信息</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>processDate</code> : process date
    <p>处理日期</p></li>
   <li><code>paymentDate</code> : payment date
    <p>付款日期</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.orderList pageSize=10&gt;&lt;#list page.list as a&gt;${a.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.orderList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/trade/orderList?pageSize=10&amp;authToken=用户登录Token&amp;authUserId=用户id', function(data){    
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-orderProduct">tradeOrderProduct 订单产品查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 订单产品id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>orderId</code> : order id
    <p>订单id</p></li>
   <li><code>contentId</code> : content id
    <p>内容id</p></li>
   <li><code>productId</code> : product id
    <p>产品id</p></li>
   <li><code>price</code> : price
    <p>价格</p></li>
   <li><code>quantity</code> : quantity
    <p>数量</p></li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>remark</code> : remark
    <p>备注</p></li>
  </ul></li>
 <li><code>ids</code> 多个订单产品id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.orderProduct id=1&gt;${object.quantity}&lt;/@trade.orderProduct&gt;</p>
<p>&lt;@trade.orderProduct ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.quantity}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.orderProduct&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/orderProduct?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.quantity);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-orderProductList">tradeOrderProductList 订单产品列表查询指令
<p>参数列表</p>
<ul>
 <li><code>orderId</code> 订单id</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>orderId</code> : order id
    <p>订单id</p></li>
   <li><code>contentId</code> : content id
    <p>内容id</p></li>
   <li><code>productId</code> : product id
    <p>产品id</p></li>
   <li><code>price</code> : price
    <p>价格</p></li>
   <li><code>quantity</code> : quantity
    <p>数量</p></li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>remark</code> : remark
    <p>备注</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.orderProductList orderId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.productId}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.orderProductList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/trade/orderProductList?orderId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){    
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-payment">tradePayment 支付订单查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 支付订单id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>tradeType</code> : trade type(recharge,product)
    <p>订单类型(recharge:充值,product:产品)</p></li>
   <li><code>serialNumber</code> : serial number
    <p>订单流水</p></li>
   <li><code>accountType</code> : account type(account,alipay,wechat)
    <p>账户类型(account:账户,alipay:支付宝,wechat:微信)</p></li>
   <li><code>accountSerialNumber</code> : account serial number
    <p>账户流水</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>status</code> : status(0:pending pay,1:paid,2:pending refund,3:refunded,4:closed)
    <p>状态(0:待支付,1:已支付,2:待退款,3:已退款,4:已关闭)</p></li>
   <li><code>processed</code> : processed
    <p>已处理</p></li>
   <li><code>processUserId</code> : process user id
    <p>处理用户id</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>processDate</code> : process date
    <p>处理日期</p></li>
   <li><code>paymentDate</code> : payment date
    <p>支付日期</p></li>
  </ul></li>
 <li><code>ids</code> 多个支付订单id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.payment id=1&gt;${object.amount}&lt;/@trade.payment&gt;</p>
<p>&lt;@trade.payment ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.payment&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/payment?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.amount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-paymentHistory">tradePaymentHistory 支付订单历史查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 支付订单历史id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>paymentId</code> : payment id
    <p>支付订单id</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>operate</code> : operate
    <p>操作</p></li>
   <li><code>content</code> : content
    <p>内容</p></li>
  </ul></li>
 <li><code>ids</code> 多个支付订单历史id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.paymentHistory id=1&gt;${object.content}&lt;/@trade.paymentHistory&gt;</p>
<p>&lt;@trade.paymentHistory ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.content}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.paymentHistory&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/paymentHistory?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.content);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-paymentHistoryList">tradePaymentHistoryList 账户列表查询指令
<p>参数列表</p>
<ul>
 <li><code>paymentId</code> 付款id</li>
 <li><code>startCreateDate</code> 起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code> 终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code> 排序类型,【asc:正序,desc:倒叙】,默认为创建日期倒叙</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>paymentId</code> : payment id
    <p>支付订单id</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>operate</code> : operate
    <p>操作</p></li>
   <li><code>content</code> : content
    <p>内容</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.paymentHistory paymentId=1 pageSize=10&gt;&lt;#list page.list as a&gt;${a.content}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.paymentHistory&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/trade/paymentHistory?paymentId=1&amp;pageSize=10&amp;appToken=接口访问授权Token', function(data){    
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-paymentList">tradePaymentList 支付列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code> 用户id</li>
 <li><code>tradeType</code> 支付类型,【recharge:充值,product:产品】</li>
 <li><code>serialNumber</code> 流水号</li>
 <li><code>accountType</code> 账户类型,【account:账户,alipay:支付宝,wechat:微信】</li>
 <li><code>accountSerialNumber</code> 账号流水号</li>
 <li><code>status</code> 状态,【0:待支付,1:已支付,2:待退款,3:已退款,4:已关闭】</li>
 <li><code>startCreateDate</code> 起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code> 终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code> 排序类型,【asc:正序,desc:倒叙】,默认为发布日期倒叙</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>amount</code> : amount
    <p>金额</p></li>
   <li><code>description</code> : description
    <p>描述</p></li>
   <li><code>tradeType</code> : trade type(recharge,product)
    <p>订单类型(recharge:充值,product:产品)</p></li>
   <li><code>serialNumber</code> : serial number
    <p>订单流水</p></li>
   <li><code>accountType</code> : account type(account,alipay,wechat)
    <p>账户类型(account:账户,alipay:支付宝,wechat:微信)</p></li>
   <li><code>accountSerialNumber</code> : account serial number
    <p>账户流水</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>status</code> : status(0:pending pay,1:paid,2:pending refund,3:refunded,4:closed)
    <p>状态(0:待支付,1:已支付,2:待退款,3:已退款,4:已关闭)</p></li>
   <li><code>processed</code> : processed
    <p>已处理</p></li>
   <li><code>processUserId</code> : process user id
    <p>处理用户id</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>processDate</code> : process date
    <p>处理日期</p></li>
   <li><code>paymentDate</code> : payment date
    <p>支付日期</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.paymentList pageSize=10&gt;&lt;#list page.list as a&gt;${a.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.paymentList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/trade/paymentList?pageSize=10&amp;authToken=用户登录Token&amp;authUserId=用户id', function(data){    
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-refund">tradeRefund 退款查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code> 退款id，结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>paymentId</code> : payment id
    <p>付款订单id</p></li>
   <li><code>amount</code> : apply amount
    <p>申请退款金额</p></li>
   <li><code>reason</code> : reason
    <p>原因</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
   <li><code>refundUserId</code> : refund user id
    <p>退款操作用户id</p></li>
   <li><code>refundAmount</code> : refund amount
    <p>退款金额</p></li>
   <li><code>status</code> : status(0:pending,1:refunded,2:cancelled,3:refuse,4:fail)
    <p>退款状态(0:待处理,1:已退款,2:取消,3:拒绝,4:失败)</p></li>
   <li><code>reply</code> : reply
    <p>回复</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>processingDate</code> : process date
    <p>处理日期</p></li>
  </ul></li>
 <li><code>ids</code> 多个退款id，逗号或空格间隔，当id为空时生效，结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@trade.refund id=1&gt;${object.amount}&lt;/@trade.refund&gt;</p>
<p>&lt;@trade.refund ids=1,2,3&gt;&lt;#list map as k,v&gt;${k}:${v.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.refund&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/trade/refund?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.amount);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="trade-refundList">tradeRefundList 退款列表查询指令
<p>参数列表</p>
<ul>
 <li><code>userId</code> 用户id</li>
 <li><code>paymentId</code> 支付id</li>
 <li><code>refundUserId</code> 退款操作用户id</li>
 <li><code>status</code> 状态,【0:待处理,1:已退款,2:取消,3:拒绝,4:失败】</li>
 <li><code>startCreateDate</code> 起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code> 终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code> 排序类型,【asc:正序,desc:倒叙】,默认为创建日期倒叙</li>
 <li><code>pageIndex</code> 页码</li>
 <li><code>pageSize</code> 每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code> List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>userId</code> : user id
    <p>用户id</p></li>
   <li><code>paymentId</code> : payment id
    <p>付款订单id</p></li>
   <li><code>amount</code> : apply amount
    <p>申请退款金额</p></li>
   <li><code>reason</code> : reason
    <p>原因</p></li>
   <li><code>updateDate</code> : update date
    <p>更新日期</p></li>
   <li><code>refundUserId</code> : refund user id
    <p>退款操作用户id</p></li>
   <li><code>refundAmount</code> : refund amount
    <p>退款金额</p></li>
   <li><code>status</code> : status(0:pending,1:refunded,2:cancelled,3:refuse,4:fail)
    <p>退款状态(0:待处理,1:已退款,2:取消,3:拒绝,4:失败)</p></li>
   <li><code>reply</code> : reply
    <p>回复</p></li>
   <li><code>createDate</code> : create date
    <p>创建日期</p></li>
   <li><code>processingDate</code> : process date
    <p>处理日期</p></li>
  </ul></li>
</ul>
使用示例
<p>&lt;@trade.refundList pageSize=10&gt;&lt;#list page.list as a&gt;${a.amount}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@trade.refundList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/trade/refundList?pageSize=10&amp;authToken=用户登录Token&amp;authUserId=用户id', function(data){    
 console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-day">visitDay 访问日报表查询指令
<p>参数列表</p>
<ul>
 <li><code>visitDate</code>:访问日期,【2020-01-01】</li>
 <li><code>visitHour</code>:访问小时,【-1-23】,-1表示整天数据,两个参数都不为空时,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>pv</code> : page views
    <p>页面访问数</p></li>
   <li><code>uv</code> : user views
    <p>用户访问数</p></li>
   <li><code>ipviews</code> : ip views
    <p>ip访问数</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.day visitDate='2020-01-01' visitHour=9&gt;${object.pv}&lt;/@visit.day&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/visit/day?visitDate=2020-01-01&amp;visitHour=9&amp;appToken=接口访问授权Token', function(data){
    console.log(data.pv);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-dayList">visitDayList 访问日报表列表查询指令
<p>参数列表</p>
<ul>
 <li><code>startVisitDate</code>:起始访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endVisitDate</code>:终止访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>hourAnalytics</code>:小时统计,【true,false】,默认false</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>pv</code> : page views
    <p>页面访问数</p></li>
   <li><code>uv</code> : user views
    <p>用户访问数</p></li>
   <li><code>ipviews</code> : ip views
    <p>ip访问数</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.dayList hourAnalytics=false&gt;&lt;#list page.list as a&gt;${a.pv}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@visit.dayList&gt;</p>
<pre>&lt;script&gt;
 $.getJSON('${site.dynamicPath}api/directive/visit/dayList?hourAnalytics=false&amp;appToken=接口访问授权Token', function(data){
   console.log(data.page.totalCount);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-history">visitHistory 访问记录查询指令
<p>参数列表</p>
<ul>
 <li><code>id</code>:记录id,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>sessionId</code> : session id 会话id</li>
   <li><code>visitDate</code> : visit date 访问日期</li>
   <li><code>visitHour</code> : visit hour 访问小时</li>
   <li><code>userId</code> : visit user 访问用户</li>
   <li><code>ip</code> : ip</li>
   <li><code>userAgent</code> : user agent 浏览器用户标识</li>
   <li><code>url</code> : title 标题</li>
   <li><code>screenWidth</code> : screen width 屏幕宽度</li>
   <li><code>screenHeight</code> : screen height 屏幕高度</li>
   <li><code>refererUrl</code> : referer url 来源地址</li>
   <li><code>itemType</code> : item type 项目类型</li>
   <li><code>itemId</code> : item id 项目id</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
 <li><code>ids</code>: 多个记录id,逗号或空格间隔,当id为空时生效,结果返回<code>map</code>(id,<code>object</code>)</li>
</ul>
使用示例
<p>&lt;@visit.history id=1&gt;${object.title}&lt;/@visit.history&gt;</p>
<p>&lt;@visit.history ids='1,2,3'&gt;&lt;#list map as k,v&gt;${k}:${v.title}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@visit.history&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/visit/history?id=1&amp;appToken=接口访问授权Token', function(data){    
    console.log(data.title);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-historyList">visitHistoryList 访问记录列表查询指令
<p>参数列表</p>
<ul>
 <li><code>sessionId</code>:会话id</li>
 <li><code>ip</code>:ip</li>
 <li><code>url</code>:url</li>
 <li><code>startCreateDate</code>:起始创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endCreateDate</code>:终止创建日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为创建日期倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>sessionId</code> : session id 会话id</li>
   <li><code>visitDate</code> : visit date 访问日期</li>
   <li><code>visitHour</code> : visit hour 访问小时</li>
   <li><code>userId</code> : visit user 访问用户</li>
   <li><code>ip</code> : ip</li>
   <li><code>userAgent</code> : user agent 浏览器用户标识</li>
   <li><code>url</code> : title 标题</li>
   <li><code>screenWidth</code> : screen width 屏幕宽度</li>
   <li><code>screenHeight</code> : screen height 屏幕高度</li>
   <li><code>refererUrl</code> : referer url 来源地址</li>
   <li><code>itemType</code> : item type 项目类型</li>
   <li><code>itemId</code> : item id 项目id</li>
   <li><code>createDate</code> : create date 创建日期</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.historyList hourAnalytics=false&gt;&lt;#list page.list as a&gt;${a.url}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@visit.historyList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/visit/historyList?hourAnalytics=false&amp;appToken=接口访问授权Token', function(data){
  console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-item">visitItem 访问项目报表查询指令
<p>参数列表</p>
<ul>
 <li><code>visitDate</code>:访问日期,【2020-01-01】</li>
 <li><code>itemType</code>:访问项目类型,【category,content,user等页面统计时中的itemType】</li>
 <li><code>itemId</code>:访问项目id,三个参数都不为空时,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>pv</code> : pv</li>
   <li><code>uv</code> : uv</li>
   <li><code>ipviews</code> : ip views
    <p>ip访问数</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.item visitDate='2020-01-01' visitHour=9&gt;${object.pv}&lt;/@visit.item&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/visit/item?visitDate=2020-01-01&amp;itemType=content&amp;itemId=1&amp;appToken=接口访问授权Token', function(data){
    console.log(data.pv);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-itemList">visitItemList 访问项目列表查询指令
<p>参数列表</p>
<ul>
 <li><code>startVisitDate</code>:起始访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endVisitDate</code>:终止访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>dayAnalytics</code>:天统计,【true,false】,默认true</li>
 <li><code>itemType</code>:项目类型,【category,content,user等页面统计时中的itemType】</li>
 <li><code>itemId</code>:项目id</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>pv</code> : pv</li>
   <li><code>uv</code> : uv</li>
   <li><code>ipviews</code> : ip views
    <p>ip访问数</p></li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.itemList itemType='content'&gt;&lt;#list page.list as a&gt;${a.pv}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@visit.itemList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/visit/itemList?itemType=content&amp;appToken=接口访问授权Token', function(data){
  console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-session">visitSession 访问会话报表查询指令
<p>参数列表</p>
<ul>
 <li><code>visitDate</code>:访问日期,【2020-01-01】</li>
 <li><code>sessionId</code>:会话id,两个参数都不为空时,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>lastVisitDate</code> : last visit date
    <p>上次访问日期</p></li>
   <li><code>firstVisitDate</code> : first visit date
    <p>首次访问日期</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>pv</code> : pv</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.session visitDate='2020-01-01' sessionId='xxxx-xxxx-xxxx'&gt;${object.pv}&lt;/@visit.session&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/visit/session?visitDate=2020-01-01&amp;sessionId=xxxx-xxxx-xxxx&amp;appToken=接口访问授权Token', function(data){
    console.log(data.pv);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-sessionList">visitSessionList 访问会话报表列表查询指令
<p>参数列表</p>
<ul>
 <li><code>sessionId</code>:会话id</li>
 <li><code>ip</code>:ip</li>
 <li><code>startVisitDate</code>:起始访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endVisitDate</code>:终止访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>orderType</code>:排序类型,【asc:正序,desc:倒序】,默认为创建日期倒序</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>lastVisitDate</code> : last visit date
    <p>上次访问日期</p></li>
   <li><code>firstVisitDate</code> : first visit date
    <p>首次访问日期</p></li>
   <li><code>ip</code> : ip</li>
   <li><code>pv</code> : pv</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.sessionList&gt;&lt;#list page.list as a&gt;${a.pv}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@visit.sessionList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/visit/sessionList?appToken=接口访问授权Token', function(data){
  console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-url">visitUrl 访问网址报表查询指令
<p>参数列表</p>
<ul>
 <li><code>visitDate</code>:访问日期,【2020-01-01】</li>
 <li><code>urlMd5</code>:访问网址md5</li>
 <li><code>urlSha</code>:访问网址sha,三个参数都不为空时,结果返回<code>object</code>
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>url</code> : url 网址</li>
   <li><code>pv</code> : pv</li>
   <li><code>uv</code> : uv</li>
   <li><code>ipviews</code> : ip views ip访问数</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.url visitDate='2020-01-01' urlMd5='md5' urlSha='sha'&gt;${object.pv}&lt;/@visit.url&gt;</p>
<pre> &lt;script&gt;
  $.getJSON('${site.dynamicPath}api/directive/visit/url?visitDate=2020-01-01&amp;urlMd5=MD5&amp;urlSha=sha&amp;appToken=接口访问授权Token', function(data){
    console.log(data.pv);
  });
  &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="visit-urlList">visitUrlList 访问网址报表列表查询指令
<p>参数列表</p>
<ul>
 <li><code>url</code>:url</li>
 <li><code>startVisitDate</code>:起始访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>endVisitDate</code>:终止访问日期,【2020-01-01 23:59:59】,【2020-01-01】</li>
 <li><code>pageIndex</code>:页码</li>
 <li><code>pageSize</code>:每页条数</li>
</ul>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>page.list</code>:List类型 查询结果实体列表
  <ul style="padding-left:20px;">
   <li><code>id</code> : id</li>
   <li><code>url</code> : url 网址</li>
   <li><code>pv</code> : pv</li>
   <li><code>uv</code> : uv</li>
   <li><code>ipviews</code> : ip views ip访问数</li>
  </ul></li>
</ul>
<p>使用示例</p>
<p>&lt;@visit.urlList&gt;&lt;#list page.list as a&gt;${a.pv}&lt;#sep&gt;,&lt;/#list&gt;&lt;/@visit.urlList&gt;</p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/directive/visit/urlList?appToken=接口访问授权Token', function(data){
  console.log(data.page.totalCount);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-confuse">confuse 混淆文字
<p>参数列表</p>
<ol>
 <li>字符串</li>
 <li>数字,默认为字符数的1/5</li>
 <li>布尔,是否html,默认否</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>ConfuseResult</code>:map{text:加密文本,font:加密字体}</li>
</ul>
使用示例 需要在 系统-&gt;站点配置-&gt;content-&gt;混淆原始字体文件 上传原始字体文件
<pre> &lt;#assign result=confuse('天津黑核科技有限公司',11)/&gt;
 
 &lt;style&gt;
     @font-face {font-family:confuse;src:url(${result.font});}
     #content{font-family:confuse !important;}
 &lt;/style&gt;
 &lt;div id="content"&gt;${(result.text)!}&lt;/div&gt;
 </pre>
<pre> &lt;script&gt;
 $.getJSON('${site.dynamicPath}api/method/confuse?parameters=aaa&amp;appToken=接口访问授权Token', function(data){
     console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-confuseHtml">confuse 混淆html中的文字
<p>参数列表</p>
<ol>
 <li>字符串</li>
 <li>数字,默认为字符数的1/5</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>ConfuseResult</code>:map{text:加密文本,font:加密字体}</li>
</ul>
使用示例 需要在 系统-&gt;站点配置-&gt;content-&gt;混淆原始字体文件 上传原始字体文件
<pre> &lt;#assign result=confuseHtml('&lt;a href="http://www.publiccms.com"&gt;publiccms&lt;/a&gt;',11)/&gt;
 
 &lt;style&gt;
     @font-face {font-family:confuse;src:url(${result.font});}
     #content{font-family:confuse !important;}
 &lt;/style&gt;
 &lt;div id="content"&gt;${(result.text?no_esc)!}&lt;/div&gt;
 &lt;script&gt;
 var elements = document.querySelectorAll('#content &gt; *');
   elements.forEach(function(element) {
       if(element.style.fontFamily){
           element.style.fontFamily='confuse,'+element.style.fontFamily;
       }
   });
 &lt;/script&gt;
 </pre>
<pre> &lt;script&gt;
 $.getJSON('${site.dynamicPath}api/method/confuseHtml?parameters=aaa&amp;appToken=接口访问授权Token', function(data){
     console.log(data);
 });
 &lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getAbsoluteUrl">getAbsoluteUrl 获取url绝对路径
<p></p>
<ul style="padding-left:20px;"></ul></div>
        <div class="block" data-id="method-getCategoryAttribute">getCategoryAttribute 获取分类扩展数据
<p>参数列表</p>
<ol>
 <li>分类id</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>attribute</code>:分类扩展数据(字段编码,<code>value</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;#assign attribute=getCategoryAttribute(1)/&lt;</p>
<p>${attribute.title!}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getCategoryAttribute?parameters=1', function(data){
console.log(data.title);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getCategoryAttributes">getCategoryAttributes 获取多个分类扩展数据
<p>参数列表</p>
<ol>
 <li>多个分类id</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>map</code>(id,<code>attribute</code>:分类扩展数据(字段编码,<code>value</code>))</li>
</ul>
<p>使用示例</p>
<p>&lt;#assign attributeMap=getCategoryAttributes('1,2,3,4')/&lt;</p>
<p>${attributeMap['1'].title!}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getCategoryAttributes?parameters=1,2,3,4', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getContentAttribute">getContentAttribute 获取内容扩展数据
<p>参数列表</p>
<ol>
 <li>内容id</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>attribute</code>:内容扩展数据(字段编码,<code>value</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;#assign attribute=getContentAttribute(1)/&lt;</p>
<p>${(attribute.text?no_esc)!}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getContentAttribute?appToken=接口访问授权Token&amp;parameters=1', function(data){
console.log(data.text);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getContentAttributes">getContentAttributes 获取多个内容扩展数据
<p>参数列表</p>
<ol>
 <li>多个内容id</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>map</code>(id,<code>attribute</code>:内容扩展数据(字段编码,<code>value</code>))</li>
</ul>
<p>使用示例</p>
<p>&lt;#assign attributeMap=getContentAttributes('1,2,3,4')/&lt;</p>
<p>${attributeMap['1'].text?no_esc!}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getContentAttributes?appToken=接口访问授权Token&amp;parameters=1,2,3,4', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getContentPage">getContentPage 获取正文分页结果
<p>参数列表</p>
<ol>
 <li>正文</li>
 <li>页码</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>page</code>:
  <ul style="padding-left:20px;">
   <li><code>DEFAULT_PAGE_SIZE</code> : 默认每页数据条数</li>
   <li><code>MAX_PAGE_SIZE</code> : 最大每页数据条数</li>
   <li><code>totalCount</code> : total count 总数量</li>
   <li><code>pageSize</code> : page size 每页数量</li>
   <li><code>firstResult</code> : first result offset 当前开始位置</li>
   <li><code>pageIndex</code> : current page index 当前页面</li>
   <li><code>totalPage</code> : total page 总页数</li>
   <li><code>list</code> : result list 结果列表</li>
  </ul></li>
 <li><code>text</code>:文章正文</li>
</ul>
<p>使用示例</p>
<p>&lt;#assign textPage=getContentPage(attribute.text,2)/&lt;</p>
<p>${textPage.text?no_esc!} current page :${textPage.page.pageIndex}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getContentAttributes?parameters=正文内容&amp;parameters=2', function(data){
console.log(data.text);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getDate">getDate 获取特定日期
<p>参数列表</p>
<ol>
 <li>日期类型【yesterday:昨天,tomorrow:明天,thisSunday:本周日,thisMonday:本周一,lastMonday:上周一,lastSunday:上周日,lastWeek:上一周,lastMonth:上个月,lastSeason:上季度,lastHalfYear:半年前,lastYear:去年,nextMonday:下周一,nextSunday:下周日,nextWeek:下一周,nextMonth:下个月,nextSeason:下季度,nextHalfYear:半年后,nextYear:明年】,默认当前时间</li>
 <li>日期,【2020-01-01 23:59:59】,【2020-01-01】,为空则取当前日期</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>date</code>:日期</li>
</ul>
使用示例
<p>${getDate('thisSunday','2020-01-01')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getDate?parameters=thisSunday&amp;parameters=2020-01-01', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getDict">getDict 获取分词词典
<p></p>
<p>返回结果</p>
<ul>
 <li><code>string</code> 自定义分词词典</li>
</ul>
使用示例
<p>${getDict()}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getDict?appToken=接口访问授权Token', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getDictEnable">getDictEnable 获取词典是否启用
<p>返回结果</p>
<ul>
 <li><code>boolean</code> 词典是否启用</li>
</ul>
使用示例
<p>${getDictEnable()}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getDictEnable', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getFileUploadPrefix">getFileUploadPrefix 获取
<p>参数列表</p>
<ol></ol>
<p>返回结果</p>
<ul>
 <li><code>url</code>:文件上传前缀</li>
</ul>
<p>使用示例</p>
<p>${getFileUploadPrefix()}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getFileUploadPrefix', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getFontList">getFontList 获取系统字体列表
<p>返回结果</p>
<ul>
 <li><code>font list</code>:字体名称列表</li>
</ul>
<p>使用示例</p>
<p>&lt;#list getFontList() as font&gt;${font}&lt;/#list&gt;</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getFontList?appToken=接口访问授权Token', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getHash">getHash 获取哈希值
<p>参数列表</p>
<ol>
 <li>字符串</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>string</code>:哈希值</li>
</ul>
<p>使用示例</p>
<p>${getHash('aaa')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getHash?parameters=aaa', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getHtml">getHtml 获取远程页面文本
<p>参数列表</p>
<ol>
 <li><code>url</code>:</li>
 <li>参数,<code>map</code>类型或<code>string</code>类型,为空时以get方式请求,不为空时以post方式请求</li>
 <li>请求头,<code>map</code>类型</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>html</code>:页面文本</li>
</ul>
<p>使用示例</p>
<p>${getHtml('https://www.publiccms.com/')}</p>
<p>${getHtml('https://www.publiccms.com/',"body")}</p>
<p>${getHtml('https://www.publiccms.com/',{"parameters1":"value1","parameters2":"value2"},{"headers1":"value1","headers2":"value2"})}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getHtml?appToken=接口访问授权Token&amp;parameters=https://www.publiccms.com/', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getIpRegion">getIpRegion 获取IP区域信息
<p></p>
<p>返回结果</p>
<ul>
 <li><code>string</code> ip</li>
</ul>
使用示例
<p>${getIpRegion('127.0.0.1')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getIpRegion?parameters=127.0.0.1', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getIpv4Number">getIpv4Number 获取ip的数字值
<p>参数列表</p>
<ol>
 <li>ip</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>number</code>:数字</li>
</ul>
<p>使用示例</p>
<p>${getIpv4Number('127.0.0.1')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getIpv4Number?parameters=127.0.0.1', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getIpv6Number">getIpv6Number 获取ip的数字值
<p>参数列表</p>
<ol>
 <li>ip</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>number string</code>:字符格式数字</li>
</ul>
<p>使用示例</p>
<p>${getIpv6Number('FF01:0:0:0:0:0:0:1101')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getIpv4Number?parameters=FF01:0:0:0:0:0:0:1101', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getKeywords">getKeywords 获取分词结果
<p>参数列表</p>
<ol>
 <li>完整语句</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>list</code>(<code>string</code>):分词结果set</li>
</ul>
<p>使用示例</p>
<p>&lt;#list getKeywords('这是一段话') as a&gt;${a}&lt;#sep&gt;,&lt;/#list&gt;&lt;</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getKeywords?parameters=这是一段话', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getLayoutStyle">getLayoutStyle 布局样式表
<p>参数列表</p>
<ol>
 <li>包含/* selecter */的样式表</li>
 <li>被替换的选择器</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>style</code>:替换后的样式表</li>
</ul>
<p>使用示例</p>
<p>${getLayoutStyle('/* selecter */','.diy-layout')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getLayoutStyle?appToken=接口访问授权Token&amp;parameters=/* selecter */&amp;parameters=.diy-layout', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getLicense">getLicense 获取授权
<p>返回结果</p>
<ul>
 <li><code>license</code>:授权数据
  <ul style="padding-left:20px;"></ul></li>
</ul>
<p>使用示例</p>
<p>${getLicense().domain}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getLicense?appToken=接口访问授权Token, function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getLicenseData">getLicenseData 获取授权数据
<p>返回结果</p>
<ul>
 <li><code>string</code>:base64编码的授权数据</li>
</ul>
<p>使用示例</p>
<p>${getLicenseData()}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getLicenseData, function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getMd5">getMd5 获取md5值
<p>参数列表</p>
<ol>
 <li>字符串</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>string</code>:md5值</li>
</ul>
<p>使用示例</p>
<p>${getMd5('aaa')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getMd5?parameters=aaa', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getPage">getPage 获取分页url
<p>参数列表</p>
<ol>
 <li><code>url</code></li>
 <li><code>pageIndex</code>:页码数字</li>
 <li><code>string</code>:分页参数,动态url分页参数名,为空时返回静态化url分页结果</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>url</code>:带分页的url</li>
</ul>
<p>使用示例</p>
<p>${getPage('https://www.publiccms.com/introduction/index_3.html',2)}</p>
<p>${getPage('https://search.publiccms.com/?word=cms',2,'pageIndex')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getHash?parameters=https://www.publiccms.com/introduction/index_3.html&amp;parameters=2', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getParameterTypeList">getParameterTypeList 获取参数类型list
<p>返回结果</p>
<ul>
 <li><code>list</code>:参数类型名称</li>
</ul>
<p>使用示例</p>
<p>&lt;#list getParameterTypeList() as a&gt;${a}&lt;#sep&gt;,&lt;/#list&gt;</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getParameterTypeList?appToken=接口访问授权Token', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getPlaceAttribute">getPlaceAttribute 获取推荐位数据扩展数据
<p>参数列表</p>
<ol>
 <li>推荐位数据id</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>attribute</code>:推荐位数据扩展数据(字段编码,<code>value</code>)</li>
</ul>
<p>使用示例</p>
<p>&lt;#assign attribute=getContentAttribute(1)/&lt;</p>
<p>${(attribute.description)!}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getContentAttribute?appToken=接口访问授权Token&amp;parameters=1', function(data){
console.log(data.description);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getPlaceAttributes">getPlaceAttributes 获取多个推荐位数据扩展数据
<p>参数列表</p>
<ol>
 <li>多个荐位数据id</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>map</code>(id,<code>attribute</code>:推荐位数据扩展数据(字段编码,<code>value</code>))</li>
</ul>
<p>使用示例</p>
<p>&lt;#assign attributeMap=getPlaceAttributes('1,2,3,4')/&lt;</p>
<p>${attributeMap['1'].description!}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getPlaceAttributes?parameters=1,2,3,4', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getPrivateUrl">getPrivateUrl 获取私有文件绝对路径
<p>参数列表</p>
<ol>
 <li><code>url</code>,文件url</li>
 <li><code>expiryMinutes</code>,过期分钟数,可以为空</li>
 <li><code>string</code>,文件名,可以为空</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>url</code>:绝对路径的url</li>
</ul>
<p>使用示例</p>
<p>${getPrivateUrl('index.html')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getPrivateUrl?appToken=接口访问授权Token&amp;parameters=index.html', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getProcessTypeList">getProcessTypeList 获取参数类型list
<p>返回结果</p>
<ul>
 <li><code>list</code>:参数类型名称</li>
</ul>
<p>使用示例</p>
<p>&lt;#list getProcessTypeList() as a&gt;${a}&lt;#sep&gt;,&lt;/#list&gt;</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getProcessTypeList?appToken=接口访问授权Token', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getRandom">getRandom 获取随机数字
<p>参数列表</p>
<ol>
 <li><code>number</code>:最大数字,可以为空</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>number</code>:随机数字</li>
</ul>
<p>使用示例</p>
<p>${getRandom()}</p>
<p>${getRandom(100)}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getRandom?parameters=100', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getSha1">getSha1 获取sha1
<p>参数列表</p>
<ol>
 <li>字符串</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>string</code>:sha1值</li>
</ul>
<p>使用示例</p>
<p>${getSha1('aaa')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getSha1?parameters=aaa', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getSha2">GetSha2 获取sha2
<p></p>
<ul style="padding-left:20px;"></ul></div>
        <div class="block" data-id="method-getSha256">getSha256 获取sha256
<p>参数列表</p>
<ol>
 <li>字符串</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>string</code>:sha256值</li>
</ul>
<p>使用示例</p>
<p>${getSha256('aaa')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getSha256?parameters=aaa', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getSha512">getSha512 获取sha512
<p>参数列表</p>
<ol>
 <li>字符串</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>string</code>:sha512值</li>
</ul>
<p>使用示例</p>
<p>${getSha512('aaa')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getSha512?parameters=aaa', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getSitefile">getSitefile 获取站点文件描述
<p>参数列表</p>
<ol>
 <li>文件名</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>sitefile</code>:
  <ul style="padding-left:20px;"></ul></li>
</ul>
<p>使用示例</p>
<p>${(getSitefile('aaa-site.zip').name)!}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getSitefile?appToken=接口访问授权Token&amp;parameters=aaa-site.zip', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getSkipWord">getSkipWord 获取词典忽略分词
<p></p>
<p>返回结果</p>
<ul>
 <li><code>string</code> 词典忽略分词</li>
</ul>
使用示例
<p>${getSkipWord()}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getRandom?appToken=接口访问授权Token', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getSleep">getSleep 睡眠一段时间
<p>参数列表</p>
<ol>
 <li><code>number</code>:睡眠时间0-60秒</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>boolean</code>:是否睡眠</li>
</ul>
<p>使用示例</p>
<p>${getSleep(5)}</p>
<p></p></div>
        <div class="block" data-id="method-getTemplateResult">getTemplateResult 获取模板解析结果
<p>参数列表</p>
<ol>
 <li>模板内容</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>string</code>:解析结果</li>
</ul>
<p>使用示例</p>
<p>${getTemplateResult('${.now}')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getDate?appToken=接口访问授权Token&amp;parameters=${.now}', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getTextFromHtml">getTextFromHtml 获取html中的文本
<p>参数列表</p>
<ol>
 <li>html内容</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>string</code>:文本结果</li>
</ul>
<p>使用示例</p>
<p>${getTextFromHtml('&lt;a href="http://www.publiccms.com/"&gt;publiccms&lt;/a&gt;')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getTextFromHtml?parameters=&lt;a href="http://www.publiccms.com/"&gt;publiccms&lt;/a&gt;', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getUUID">getUUID 获取UUID
<p></p>
<p>返回结果</p>
<ul>
 <li><code>string</code>:随机uuid</li>
</ul>
<p>使用示例</p>
<p>${getUUID()}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getUUID', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getUrl">getUrl 获取url绝对路径
<p>参数列表</p>
<ol>
 <li>url前缀</li>
 <li><code>url</code>,当第二个为空时,将第一个参数当作url</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>url</code>:绝对路径的url</li>
</ul>
<p>使用示例</p>
<p>${getUrl(site.sitePath,'index.html')} ${getUrl('index.html')}</p>
<p></p>
<pre>&lt;script&gt;
$.getJSON('${site.dynamicPath}api/method/getUrl?parameters=index.html', function(data){
console.log(data);
});
&lt;/script&gt;
 </pre></div>
        <div class="block" data-id="method-getXml">getXml 获取xml节点
<p>参数列表</p>
<ol>
 <li><code>string</code>:xml文本</li>
</ol>
<p>返回结果</p>
<ul>
 <li><code>xml</code>:xml模型</li>
</ul>
<p>使用示例</p>
<p>${getXml('&lt;xml&gt;&lt;data&gt;value&lt;/data&gt;&lt;/xml&gt;').xml.data}</p>
<p></p></div>
    </div>
</div>
<script src="https://www.publiccms.com/assets/js/jquery.min.js"></script>
<script>
$('.doc').on("scroll", function(){
    var last;
    $(".doc .block").each(function(){
        var $this=$(this);
        if($this.offset().top >= $('.doc').offset().top + 20){
            $(".indexContainer li.selected").removeClass('selected');
            if(last){
                $(".indexContainer a[href=\\#"+last.data('id')+"]").parent().addClass('selected');
            }else{
                $(".indexContainer a[href=\\#"+$this.data('id')+"]").parent().addClass('selected');
            }
            location.hash = $(".indexContainer li.selected a").attr("href").replace("#", "");
            return false;
        }
        last=$this;
    });
});
$(".indexContainer a").on("click", function(){
    var $doc=$(".doc");
    var hight= $(".doc .block[data-id="+$.escapeSelector($(this).attr("href").substring(1))+"]").offset().top - $doc.offset().top + $doc.scrollTop();
    $doc.stop().animate({scrollTop:hight},500);
});
var hash = location.hash.substring(1).replace(/\?.*$/, "");
if(hash){
    $(".indexContainer a[href=\\#"+$.escapeSelector(hash)+"]").trigger("click");
}
</script>
</body>
</html>